通过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