私は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
}