PHP cURL无法解析主机

时间:2012-10-04 15:09:24

标签: php curl

我从网站收集数据,有时似乎无法访问(或者,它可能只是DNS主机,有时会出现一些问题)。 用PHP编写的程序(使用CLI启动)退出并显示错误:

  

无法解析主人'abcdef.com'

我想拦截此错误,例如异常,因为程序不能退出。

我尝试了“尝试捕获”,但这不起作用。

我想避免使用外部守护进程来重启程序......

感谢您的帮助。

编辑: 使用的代码:

function goToPage($url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_COOKIEFILE, realpath("./cookies/cookie.txt"));
        $ret = curl_exec($ch);
        if ($ret === FALSE) {
            die(curl_error($ch));
        }
        curl_close($ch);

        $this->delay();

        return $ret;
}

1 个答案:

答案 0 :(得分:5)

您确定它实际上是在停止执行您的程序吗?我的意思是,如果它不是例外......它不是例外。据我所知,cURL不会抛出任何异常或致命错误。您所看到的最有可能只是定期通知/警告。要弄清楚你是否有cURL错误,你可以使用函数curl_errno()和curl_error():

if(curl_errno($ch))
{
    echo 'error:' . curl_error($ch);
}

或者,如果您想抛出自定义异常:

//you'll probably want to customize this further based on the type of error.
if(curl_errno($ch)){
    throw new Exception( curl_error($ch) );
}