PHPでcURLエラーをキャッチする方法 質問する

PHPでcURLエラーをキャッチする方法 質問する

私はPHPcurl関数を使用して、ローカル マシンから Web サーバーにデータを投稿しています。コードは次のとおりです。

$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($c);
if (curl_exec($c) === false) {
    echo "ok";
} else {
    echo "error";
}
curl_close($c);

残念ながら、404、500、ネットワーク障害などのエラーを検出できません。では、データがリモートに送信されなかったか、リモートから取得されなかったことをどうやって知ることができるのでしょうか?

ベストアンサー1

このcurl_error()関数を使用すると、エラーが発生したかどうかを検出できます。例:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $your_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true); // Required for HTTP error codes to be reported via our call to curl_error($ch)
//...
curl_exec($ch);
if (curl_errno($ch)) {
    $error_msg = curl_error($ch);
}
curl_close($ch);

if (isset($error_msg)) {
    // TODO - Handle cURL error accordingly
}

libcurlエラーコードの説明はここを参照してください

PHP curl_errno() 関数の説明はここを参照してください。

PHP curl_error() 関数の説明はここを参照してください。

おすすめ記事