通過fgets()
返回的字符串包含需要進行修整,然後才能驗證它尾部的換行符。試試下面的代碼,我希望這將幫助你:
<?php
$m = "urllist.txt";
$n = fopen($m, "r");
while (!feof($n)) {
$l = fgets($n);
if(filter_var(trim($l), FILTER_VALIDATE_URL)) {
echo "VALID - $l<br>";
} else {
echo "NOT VALID - $l<br>";
}
}
fclose($n);
?>
我有以下URL嘗試:
http://stackoverflow.com/
https://www.google.co.in/
https://www.google.co.in/?gfe_rd=cr&ei=bf4HVLOmF8XFoAOg_4HoCg&gws_rd=ssl
www.google.com
http://www.example.com
example.php?name=Peter&age=37
並得到以下結果:
VALID - http://stackoverflow.com/
VALID - https://www.google.co.in/
VALID - https://www.google.co.in/?gfe_rd=cr&ei=bf4HVLOmF8XFoAOg_4HoCg&gws_rd=ssl
NOT VALID - www.google.com
VALID - http://www.example.com
NOT VALID - example.php?name=Peter&age=37
如何的URL保存在文件中?如果您在一行中包含多個網址,或者在行尾有一些字符會顯示新網址,則它們將始終爲無效 – Baalthasarr 2014-09-04 05:37:04
我在相同的代碼中逐一檢查它們,它們是有效;我檢查了這個文件並清理了它;我經歷了這個檢查,沒有任何文字文件錯誤。 – Abbas1999 2014-09-04 05:38:31
只是回顯變量$ l。那麼你可以瞭解它的類型 – 2014-09-04 05:43:48