PHP:如何处理卷曲响应

时间:2012-05-05 17:36:41

标签: php curl

我试图创建一个脚本来检查网站是上升还是下降。一切正常,但当网站不是网站时,我的意思是该网站不存在。然后php执行加载时间增加。我想以某种方式处理这个问题。如何检查网站是否不存在并打破卷曲会话?这是我的剧本:

<?php
$ch = curl_init('http://86.100.69.228/'); // e.g. for this will increase execution time because the site doesn't exists
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status_code;
curl_close($ch);
?>

2 个答案:

答案 0 :(得分:1)

您可以通过在curl_setopt中设置cURL传输的CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT选项来定义超时。如果网站停机,cURL将停止工作,你会抓住它!

答案 1 :(得分:1)

如果您想检查网站是否已关闭CURL可能不是最佳选择,因为您在使用“{1}}等完整网址时...”安全DNS“如Comodo http://www.comodo.com/secure-dns/所有网站都会返回http://eample.com/abx.phpx,因为请求会自动转发以进行验证,因此您始终会加载包含IP地址的网站200 Search 92.242.144.10

我的建议只是简单地ping服务器

92.242.144.10

直接检查套接字

function ping($host)
{
    exec(sprintf('ping -n 2 %s', escapeshellarg($host)), $res, $rval);
    return $rval === 0;
}

$result = ping("86.100.69.228");

大多数时候效果更好