验证URL是否正常运行

时间:2011-06-01 04:16:44

标签: php

我将从用户处获取URL。现在我需要验证地址是否有效。

例如:

如果用户输入“google.com”,那么我会将“google.com”作为参数传递给某个函数,如果URL是实时的,上传并运行,函数将返回TRUE,否则为FALSE。

任何内置功能或一些帮助。

3 个答案:

答案 0 :(得分:2)

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;
}

您可能希望支持其他http代码,例如201,但这取决于您。

编辑:

作为一个注释,这使您可以更好地控制在失败之前要使用的超时。

答案 1 :(得分:2)

我建议使用get_headers($url)并检查您的某个回复是否包含“200 OK”。如果是,则该站点处于活动状态并以有效请求进行响应。如果需要,您还可以检查其他状态代码,例如重定向等等。

答案 2 :(得分:0)

尝试fopen

$f = @fopen('http://www.google.com/', 'r');
if (is_resource($f)) {
  fclose($f);
  return true;
} else { return false; }