1

重複の可能性:
PHP でカール エラーをキャッチする方法

私はいくつかのコード行を持っています:

<?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());
}       
?>

実際の環境で実行すると、画像を含む一部のサイト ( として$one_url) にアクセスできないか、停止するか、または ... 1 つまたは多くのコード行がエラーになります。

ステートメントを正常に実行できない場合は、どうすればキャッチできますか? 言い換えれば、私は try - catch が好きです... switch - case (not 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

これを試して:

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

false が返されたときに例外をスローしないのはなぜですか?
すなわち

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

この戻り値を確認してください

FALSE成功または失敗した場合にTRUE を返します。ただし、CURLOPT_RETURNTRANSFERオプションが設定されている場合は、成功した場合FALSEと失敗した場合に結果が返されます。

于 2013-01-31T08:29:57.083 に答える