2013-06-27 1 views
6

Pourquoi filter_var() accepte et valide cette URL http://http://www.google.com?filter_var() accepte les URL non valides

$website = "http://http://www.google.com"; 

echo filter_var($website, FILTER_VALIDATE_URL); // This outputs the value of $website 

Je pense que c'est faux. Toute solution ou fixée pour cela?

phpinfo()

enter image description here

+0

Pourquoi pensez-vous que l'URL est incorrecte? – zerkms

+2

@zerkms Il y a deux 'http: //' 's. –

+0

Oups, mon attention a été volée par 'com.ph' à la fin) – zerkms

Répondre

2

On dirait que vous avez trouvé un bogue dans PHP. Le manuel PHP indique que FILTER_VALIDATE_URL valide uris selon http://www.faqs.org/rfcs/rfc2396.html

Si vous lisez la spécification, PHP ne parvient évidemment pas à valider correctement selon les directives. Plus précisément, dans la section 3 (Composants syntaxiques URI), il est défini que le schéma (http dans votre cas) peut seulement exister une fois, et précède le seul deux-points dans l'uri.

Vous devez signaler ce bug à https://bugs.php.net/

bon travail trouver!

+1

Merci, a déposé un rapport de bug pour cela. https://bugs.php.net/bug.php?id=65141 –