首頁 >後端開發 >PHP問題 >php如何調試curl錯誤訊息

php如何調試curl錯誤訊息

coldplay.xixi
coldplay.xixi原創
2020-08-17 10:27:384147瀏覽

php調試curl錯誤訊息的方法:1、使用函數【curl_errno】和【curl_error】,分別傳回HTTP的錯誤代碼和錯誤類別;2、設定【CURLOPT_VERBOSE】為true,同時設定為用fopen開啟的一個檔案。

php如何調試curl錯誤訊息

php偵錯curl錯誤訊息的方法:

##第一種方法,首先可以使用的是curl_errnocurl_error 函數,分別傳回HTTP 的錯誤代碼和錯誤類別。例如:

<?php
$ch = curl_init(&#39;http://example.com/&#39;);
curl_exec($ch);
if (curl_errno($ch)) {
    echo &#39;Curl error: &#39; . curl_error($ch);
}
curl_close($ch);
?>

其次,如果需要得到更詳細的信息,可以用

curl_getinfo 函數。例如:

<?php
$ch = curl_init(&#39;http://example.com/&#39;);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
if (!curl_errno($ch)) {
    print_r(curl_getinfo($ch));
}
curl_close($ch);
?>

其中設定

CURLINFO_HEADER_OUT 選項之後 curl_getinfo 函數傳回的陣列將包含 cURL 請求的 header 資訊。而要看到回應的 header 訊息可以在 curl_setopt 中設定 CURLOPT_HEADER 選項為 true。

curl_exec 函數執行成功時,將根據CURLOPT_RETURNTRANSFER 選項的值處理回應的正文資訊:如果為true 將作為字串傳回,如果為false 將直接輸出。執行失敗時結果為 FALSE。也就是說,如果執行失敗(假設是 400 錯誤),從 curl_exec 函數的結果中無法看到回應的正文(裡面可能包含更具體的錯誤訊息)。要看到回應正文,有兩種方法。第一種方法是設定400 為成功的程式碼,範例如下:

curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_HTTP200ALIASES, array(400));

第二種方法,是設定CURLOPT_VERBOSE 為true,同時將 CURLOPT_STDERR 設定為用fopen 開啟的一個檔案。這樣 cURL 將把和伺服器的所有互動資訊都記錄到該檔案中。

相關學習推薦:

php程式設計(影片)

#

以上是php如何調試curl錯誤訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn