概要
基本的には curl_exec() の戻り値でエラーかどうかはわかるのですが、何のエラーが起きたのかが戻り値だけでは全然わからない。
ということで、一通り結果を取得する方法を列挙しておきます。
なお、
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
上記のようにCURLOPT_RETURNTRANSFER を設定しているものとします。
curl_exec
コンテンツとして返ってきたものが取得できます。
404 などのエラーでもエラーページの内容が返ってくる。
$body = curl_exec($curl);
curl_getinfo
直前の情報を取得します。
$info = curl_getinfo($curl);
例えば、こんな情報になります。
Array
(
[url] => https://koumei2.com/test.html
[content_type] => text/html; charset=UTF-8
[http_code] => 404
[header_size] => 840
[request_size] => 59
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.119588
[namelookup_time] => 0.002611
[connect_time] => 0.015776
[pretransfer_time] => 0.047939
[size_upload] => 0
[size_download] => 52
[speed_download] => 436
[speed_upload] => 0
[download_content_length] => 52
[upload_content_length] => -1
[starttransfer_time] => 0.119503
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => xxx.xxx.xxx.xxx
[certinfo] => Array
(
)
[primary_port] => 443
[local_ip] => yyy.yyy.yyy.yyy
[local_port] => 55397
[http_version] => 2
[protocol] => 2
[ssl_verifyresult] => 0
[scheme] => HTTPS
[appconnect_time_us] => 47897
[connect_time_us] => 15776
[namelookup_time_us] => 2611
[pretransfer_time_us] => 47939
[redirect_time_us] => 0
[starttransfer_time_us] => 119503
[total_time_us] => 119588
)
エラー情報
エラー情報は下記で取得できます。
$errno = curl_errno($curl); $error = curl_error($curl);
それぞれ、エラー番号とエラーメッセージが取得できます。
エラーの詳細は下記が詳しいです。
コメント