问题描述
|
我将从用户那里获取URL。现在,我需要验证地址是否有效。
例如:
如果用户输入\“ google.com \”,那么我会将\“ google.com \”作为参数传递给某个函数,如果URL处于活动状态,正在上载并且正在运行,则函数将返回TRUE,否则返回FALSE。
任何内置功能或一些帮助。
解决方法
我建议使用get_headers($ url)并检查您的响应中是否包含\“ 200 OK \”。如果是这样,则该站点仍然有效,并以有效请求进行了响应。您还可以根据需要检查其他状态代码,例如重定向和诸如此类。
,
function url_exists($url){
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_exec($ch);
$code = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
return $code == 200;
}
您可能需要支持其他httpcode,例如201,但这取决于您。
编辑:
值得注意的是,这使您可以更好地控制失败之前要使用的超时。
, 试试fopen
$f = @fopen(\'http://www.google.com/\',\'r\');
if (is_resource($f)) {
fclose($f);
return true;
} else { return false; }