2013-06-27 13 views
6

Perché filter_var() accetta e convalidare questo URL http://http://www.google.com?filter_var() accetta URL non valido

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

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

Penso che sia sbagliato. Qualche soluzione o riparata per questo?

phpinfo()

enter image description here

+0

Perché pensi che l'URL sia sbagliato? – zerkms

+2

@zerkms Ci sono due '' http: // ''. –

+0

Oops, la mia attenzione è stata rubata da 'com.ph' alla fine) – zerkms

risposta

2

Sembra come aver trovato un bug in PHP. Il manuale PHP afferma che FILTER_VALIDATE_URL convalida l'uris in base a http://www.faqs.org/rfcs/rfc2396.html

Se si legge la specifica, PHP ovviamente non riesce a convalidare correttamente secondo le linee guida. Nello specifico, nella sezione 3 (Componenti sintattiche URI), è definito che lo schema (http nel tuo caso) può esistere solo una volta e precede gli unici due punti nell'uri.

Si dovrebbe segnalare questo bug in https://bugs.php.net/

Buon lavoro trovarlo!

+1

Grazie, ha presentato una segnalazione di bug per questo. https://bugs.php.net/bug.php?id=65141 –

Problemi correlati