fork download
  1. <?php
  2.  
  3. $arr = array(
  4. array("name"=>"http://w...content-available-to-author-only...m.br/","possibleValues"=>array("index")),
  5. array("name"=>"www.teste.com.br/","possibleValues"=>array("index")),
  6. array("name"=>"teste.com","possibleValues"=>array("index")),
  7. array("name"=>"teste.com/","possibleValues"=>array("index")),
  8. array("name"=>"www.teste.com.br/teste","possibleValues"=>array("teste")),
  9. array("name"=>"http://w...content-available-to-author-only...m.br/teste","possibleValues"=>array("teste")),
  10. array("name"=>"http://t...content-available-to-author-only...e.com/teste","possibleValues"=>array("teste")),
  11. array("name"=>"https://w...content-available-to-author-only...e.com/teste","possibleValues"=>array("teste")),
  12. array("name"=>"https://t...content-available-to-author-only...e.com/teste","possibleValues"=>array("teste")),
  13. array("name"=>"teste.com/teste/dois","possibleValues"=>array("dois")),
  14. array("name"=>"teste.com/teste/dois/","possibleValues"=>array("dois")),
  15. array("name"=>"teste.com/teste/dois/?variavel=teste","possibleValues"=>array("dois")),
  16. array("name"=>"teste.com/teste/dois?variavel=teste","possibleValues"=>array("dois")),
  17. array("name"=>"teste.com/teste/dois/?variavel=teste","possibleValues"=>array("dois")),
  18. array("name"=>"teste.com/teste?var1=t&var2=t","possibleValues"=>array("teste")),
  19. array("name"=>"teste.com/teste/tres#ola","possibleValues"=>array("tres")),
  20. array("name"=>"teste.com/teste?var1=t&var2=t#ola","possibleValues"=>array("teste"))
  21. );
  22.  
  23. foreach($arr as $k => $value){
  24. echo "#$k: URL ".$value["name"]."\n";
  25. echo ( array_search( returnLastWord($value["name"]), $value["possibleValues"] ) === false ? "FALHOU" : "PASSOU" )." -> expected: ".json_encode( $value["possibleValues"] )." get '".returnLastWord($value["name"])."'\n\n";
  26. }
  27.  
  28. function returnLastWord ($url) {
  29.  
  30. // Analisa a URL:
  31. $url = parse_url($url);
  32.  
  33. // Divide o path nas ocorrências de /:
  34. $parts = explode('/', trim($url["path"], '/'));
  35.  
  36. // Busca o último elemento:
  37. $last = end($parts);
  38.  
  39. // Se não estiver vazio e não possuir o caractere ., retorna o valor, senão retorna index:
  40. return $last && false === strpos($last, '.') ? $last : "index";
  41.  
  42. }
Success #stdin #stdout 0.04s 82880KB
stdin
Standard input is empty
stdout
#0: URL http://w...content-available-to-author-only...m.br/
PASSOU -> expected: ["index"] get 'index'

#1: URL www.teste.com.br/
PASSOU -> expected: ["index"] get 'index'

#2: URL teste.com
PASSOU -> expected: ["index"] get 'index'

#3: URL teste.com/
PASSOU -> expected: ["index"] get 'index'

#4: URL www.teste.com.br/teste
PASSOU -> expected: ["teste"] get 'teste'

#5: URL http://w...content-available-to-author-only...m.br/teste
PASSOU -> expected: ["teste"] get 'teste'

#6: URL http://t...content-available-to-author-only...e.com/teste
PASSOU -> expected: ["teste"] get 'teste'

#7: URL https://w...content-available-to-author-only...e.com/teste
PASSOU -> expected: ["teste"] get 'teste'

#8: URL https://t...content-available-to-author-only...e.com/teste
PASSOU -> expected: ["teste"] get 'teste'

#9: URL teste.com/teste/dois
PASSOU -> expected: ["dois"] get 'dois'

#10: URL teste.com/teste/dois/
PASSOU -> expected: ["dois"] get 'dois'

#11: URL teste.com/teste/dois/?variavel=teste
PASSOU -> expected: ["dois"] get 'dois'

#12: URL teste.com/teste/dois?variavel=teste
PASSOU -> expected: ["dois"] get 'dois'

#13: URL teste.com/teste/dois/?variavel=teste
PASSOU -> expected: ["dois"] get 'dois'

#14: URL teste.com/teste?var1=t&var2=t
PASSOU -> expected: ["teste"] get 'teste'

#15: URL teste.com/teste/tres#ola
PASSOU -> expected: ["tres"] get 'tres'

#16: URL teste.com/teste?var1=t&var2=t#ola
PASSOU -> expected: ["teste"] get 'teste'