可能是重复问题:
在PHP中检查URL是否存在的最佳方法是什么?`
我正在寻找一个函数,在php中返回TRUE
或FALSE
,无论URL是否有效。
isValidURL($url);
我认为这很简单... 它将考虑所有可能的URL。
通过有效,我希望它指的是网页或其他类型文件的现有页面。 它只应该存在。
可能是重复问题:
在PHP中检查URL是否存在的最佳方法是什么?`
我正在寻找一个函数,在php中返回TRUE
或FALSE
,无论URL是否有效。
isValidURL($url);
我认为这很简单... 它将考虑所有可能的URL。
通过有效,我希望它指的是网页或其他类型文件的现有页面。 它只应该存在。
<?php
$url = "http://stack*overflow.org";
if(filter_var($url, FILTER_VALIDATE_URL) === FALSE)
{
echo "Not valid";
}else{
echo "VALID";
}
?>
这虽然没有检查 tlds,但是。
http://stackoverflow
。 - PaulSkinnerget_headers()
进行更可靠但较慢的检查。 - Tomáš Zatoparse_url
函数来检查URL是否有效,如果URL无效,则会返回false
,否则返回一个array
。请保留HTML标签。function isValidURL($url) { return (bool)parse_url($url); }
preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
也不是很可靠。但我有自己的理由不关心域名区域:他们明天会注册更多的域名区域,我将不得不在所有项目中手动添加它们?为了检查URL是否真的存在,我将使用cURL或sockets。对于快速检查,这些函数对我来说已经足够了。我只是向OP提供一个我自己使用的方法。而且它比 regex
更干净,这就是我喜欢它的原因;-) - Nemoden