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 $value){
  24. echo "URL ".$value["name"]."\n";
  25. echo ( array_search( basename( returnLastWord( $value["name"] ) ), $value["possibleValues"] ) === false ? "FALHOU" : "PASSOU" )." -> expected: ".json_encode( $value["possibleValues"] )." get '".basename( returnLastWord( $value["name"] ) )."'\n\n";
  26. }
  27.  
  28. function returnLastWord($var){
  29.  
  30. //Remove o protocolo
  31. $var = preg_replace('~^[^:]+[:][/]{2,}~', '', $var);
  32.  
  33. //Pega qualquer coisa que seja um PATH em URLs
  34. if (preg_match('~/([^#?]{1,})~', $var, $matches)) {
  35.  
  36. //Remove o / do final em urls como `foo/bar/`, para evitar pegar em branco
  37. $result = rtrim($matches[1], '/');
  38.  
  39. //Pega qualquer coisa que estiver no final
  40. if (preg_match('~[^/]+$~', $result, $matches)) {
  41. return $matches[0];
  42. }
  43. }
  44.  
  45. //Se qualquer coisa anterior falhou é porque provavelmente é "index"
  46. return 'index';
  47. }
  48.  
Success #stdin #stdout 0.02s 82944KB
stdin
Standard input is empty
stdout
URL http://w...content-available-to-author-only...m.br/
PASSOU -> expected: ["index"] get 'index'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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