概要
基本的には 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);
それぞれ、エラー番号とエラーメッセージが取得できます。
エラーの詳細は下記が詳しいです。
コメント