2014-02-27 108 views
0

我有以下几点:filter_var():这是一个有效的URL吗?

$url= "http://t"; 

if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) { 
    echo "FALSE"; 
} else { 
    echo "TRUE"; 
} 

这是返回true,如果它不是一个有效的网站。为什么?

+3

因为't'可能是一个主机名,这是完全合法的。 – h2ooooooo

+1

你是什么意思“不是一个有效的网站”?你是否认为't'不是一个有效的主机名?它是。你是否期望filter_var()检查网站的存在?它没有。 –

+0

更多信息:http://www.devshed.com/c/a/PHP/Validating-URL-Protocols-Hosts-and-Paths-with-Filters-in-PHP-5/2/ – Reger

回答

8

http://t是一个有效的URL,比如:

http://localhost 

在这里看到:

http://www.w3.org/Addressing/URL/url-spec.txt

+0

我也运行在本地Web服务器,我可以达到,例如网站,通过'http:// crm5'它的工作原理。 –

+0

好的,另外一个为什么'http:// t.'返回true? – Walter

+1

因为它在语法上是正确的,你应该检查它是否存在使用curl例如 –