1

可能重复:
如何在 PHP 中捕获 curl 错误

我有几行代码:

<?php
try {
    $my_curl = curl_init();

    curl_setopt($my_curl, CURLOPT_URL, $one_url); 
    curl_setopt($my_curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($my_curl, CURLOPT_BINARYTRANSFER, 1);
    $datum = curl_exec($my_curl);
    curl_close($my_curl);

    $my_image = imagecreatefromstring($datum);

} catch(Exception $e) {
    var_dump($e->getMessage());
}       
?>

在真实环境中运行时,某些包含图像(as $one_url)的站点无法访问或死亡或...导致一行/或多行代码变成错误。

如果任何语句无法成功完成,我该如何尝试?换句话说,我喜欢 try - catch 的工作方式类似于... switch - case(不是 if else)。

任何建议将不胜感激!非常感谢。

4

3 回答 3

1

你可以这样做curl_error

$datum = curl_exec($my_curl);
if($datum === false) {
    echo 'Curl error: '.curl_error($ch);
}
于 2013-01-31T08:29:35.340 回答
0

为什么在返回 false 时不抛出异常?
IE

if ($curlResp === FALSE) {
    throw new Exception(); 
}

检查
返回值

FALSE成功或失败时返回 TRUE 。但是,如果CURLOPT_RETURNTRANSFER设置了该选项,它将在成功时返回结果,FALSE在失败时返回。

于 2013-01-31T08:29:57.083 回答
0

尝试这个:

if(curl_errno($my_curl))
{
    echo 'error:' . curl_error($my_curl);
}
于 2013-01-31T08:32:07.913 回答