2014-02-27 215 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例如 –