亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

cURL函數庫錯誤碼說明之PHP curl_errno函數_PHP教程

2020-03-22 18:49:09
字體:
來源:轉載
供稿:網友
本文章來給大家介紹cURL函數庫錯誤碼說明之PHP curl_errno函數,有需要了解的朋友不防進入參考。

背景概述:
游戲接口是使用PHP cURL擴展進行請求操作。但是,被請求的服務器經常會無故的不響應或者超時??傊褪钦埱笾笫詹坏巾憫貋淼臄祿?。這時候可不能說對方API接口有問題,或者,服務器有故障。總之,可能出現的問題是非常之多。不能一概而論。

一、給出一段常用的PHP cURL代碼:

代碼如下復制代碼

function sendRequestGame($url)
{
$header = array('Expect:');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
$retData = curl_exec( $ch );
curl_close( $ch );

return $retData;
}

經常使用PHP cURL函數的人,一定不會陌生吧。

同時,我也相信大部分PHPer也是這樣寫代碼的。至少核心部分就是這樣,根本沒有判斷這個請求失敗了,是什么情況產生的。

誠然,通過嚴重的安全事故導致我必須重新審核這個cURL庫,該怎樣保證我的請求是穩定可靠的。當出現失敗之后,我要知道是什么原因導致的。第一時間知道并反饋到人,進行及時的溝通協調與修復。

現在我們為了保證每次請求的穩定可靠性,必須加入日志功能。即把失敗時請求的相關參數狀態和錯誤碼一起記錄到日志中。方便,我們失敗之后去檢查。

看代碼:

代碼如下復制代碼

function sendRequestGame($url)
{
$header = array('Expect:');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
$return = curl_exec( $ch );
$errno = curl_errno( $ch );
$info = curl_getinfo( $ch );
$info['errno'] = $errno;
curl_close( $ch );

$log = json_encode( $info );
putLog( $log );

return $return;
}

/**
* 打日志。
* @param string $log 日志內容。
* @return void
*/
function putLog( $log )
{
$log .= "nn";
$logDir = dirname( __FILE__ );
$logPath = $logDir . "/curl_log.txt";
if ( !file_exists( $logPath ) )
{
$handle = fopen( $logPath, 'w' );
fclose ( $handle );
}
file_put_contents( $logPath, $log, FILE_APPEND );
}

現在調用 sendRequestGame 函數的時候,會將每次請求的信息給json_encode之后保存到日志文件 curl_log.txt中。這樣,我們就可以清楚地知道,每次請求到底發生了什么情況。

改進之后,增加了兩個函數:

$errno = curl_errno( $ch );
$info = curl_getinfo( $ch );這兩個函數非常的關鍵。第一個 curl_errno是返回當前請求的錯誤碼,0代表沒有錯誤,是一個Ok正常的請求。非0代碼請求出現了錯誤。但是,大部分錯誤發生時,請求都沒有正確到達URL所指定的服務器。如:主機打不到、網址錯誤、404。當然,不排除有500這種內部服務器錯誤的存在。

第二個是函數非常重要,curl_getinfo函數會獲取當前請求的相關信息:

代碼如下復制代碼

Array
(
[url] => http://www.bKjia.c0m/
[content_type] => text/html; charset=UTF-8
[http_code] => 200
[header_size] => 321
[request_size] => 53
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 2.075
[namelookup_time] => 0
[connect_time] => 0.031
[pretransfer_time] => 0.031
[size_upload] => 0
[size_download] => 79042
[speed_download] => 38092
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => 0
[starttransfer_time] => 1.388
[redirect_time] => 0
[certinfo] => Array
(
)

[redirect_url] =>

我相信大家人字面意思就能看懂7788.不明白的話,自己去看PHP官方手冊吧。

以下,我再附上 curl error code ,即 curl_errno函數返回的數字說明:
CURLE_UNSUPPORTED_PROTOCOL (1) – 您傳送給 libcurl 的網址使用了此 libcurl 不支持的協議。 可能是您沒有使用的編譯時選項造成了這種情況(可能是協議字符串拼寫有誤,或沒有指定協議 libcurl 代碼)。
CURLE_FAILED_INIT (2) – 非常早期的初始化代碼失敗。 可能是內部錯誤或問題。
CURLE_URL_MALFORMAT (3) – 網址格式不正確。
CURLE_COULDNT_RESOLVE_PROXY (5) – 無法解析代理服務器。 指定的代理服務器主機無法解析。
CURLE_COULDNT_RESOLVE_HOST (6) – 無法解析主機。 指定的遠程主機無法解析。
CURLE_COULDNT_CONNECT (7) – 無法通過 connect() 連接至主機或代理服務器。
CURLE_FTP_WEIRD_SERVER_REPLY (8) – 在連接到 FTP 服務器后,libcurl 需要收到特定的回復。 此錯誤代碼表示收到了不正?;虿徽_的回復。 指定的遠程服務器可能不是正確的 FTP 服務器。
CURLE_REMOTE_ACCESS_DENIED (9) – 我們無法訪問網址中指定的資源。 對于 FTP,如果嘗試更改為遠程目錄,就會發生這種情況。
CURLE_FTP_WEIRD_PASS_REPLY (11) – 在將 FTP 密碼發送到服務器后,libcurl 需要收到正確的回復。 此錯誤代碼表示返回的是意外的代碼。
CURLE_FTP_WEIRD_PASV_REPLY (13) – libcurl 無法從服務器端收到有用的結果,作為對 PASV 或 EPSV 命令的響應。 服務器有問題。
CURLE_FTP_WEIRD_227_FORMAT (14) – FTP 服務器返回 227 行作為對 PASV 命令的響應。如果 libcurl 無法解析此行,就會返回此代碼。
CURLE_FTP_CANT_GET_HOST (15) – 在查找用于新連接的主機時出現內部錯誤。
CURLE_FTP_COULDNT_SET_TYPE (17) – 在嘗試將傳輸模式設置為二進制或 ascii 時發生錯誤。
CURLE_PARTIAL_FILE (18) – 文件傳輸尺寸小于或大于預期。當服務器先報告了一個預期的傳輸尺寸,然后所傳送的數據與先前指定尺寸不相符時,就會發生此錯誤。
CURLE_FTP_COULDNT_RETR_FILE (19) – ‘RETR’ 命令收到了不正常的回復,或完成的傳輸尺寸為零字節。
CURLE_QUOTE_ERROR (21) – 在向遠程服務器發送自定義 “QUOTE” 命令時,其中一個命令返回的錯誤代碼為 400 或更大的數字(對于 FTP),或以其他方式表明命令無法成功完成。
CURLE_HTTP_RETURNED_ERROR (22) – 如果 CURLOPT_FAILONERROR 設置為 TRUE,且 HTTP 服務器返回 >= 400 的錯誤代碼,就會返回此代碼。 (此錯誤代碼以前又稱為 CURLE_HTTP_NOT_FOUND。)
CURLE_WRITE_ERROR (23) – 在向本地文件寫入所收到的數據時發生錯誤,或由寫入回調 (write callback) 向 libcurl 返回了一個錯誤。
CURLE_UPLOAD_FAILED (25) – 無法開始上傳。 對于 FTP,服務器通常會拒絕執行 STOR 命令。錯誤緩沖區通常會提供服務器對此問題的說明。 (此錯誤代碼以前又稱為 CURLE_FTP_COULDNT_STOR_FILE。)
CURLE_READ_ERROR (26) – 讀取本地文件時遇到問題,或由讀取回調 (read callback) 返回了一個錯誤。
CURLE_OUT_OF_MEMORY (27) – 內存分配請求失敗。此錯誤比較嚴重,若發生此錯誤,則表明出現了非常嚴重的問題。
CURLE_OPERATION_TIMEDOUT (28) – 操作超時。 已達到根據相應情況指定的超時時間。 請注意: 自 Urchin 6.6.0.2 開始,超時時間可以自行更改。 要指定遠程日志下載超時,請打開 urchin.conf 文件,取消以下行的注釋標記:
#DownloadTimeout: 30
CURLE_FTP_PORT_FAILED (30) – FTP PORT 命令返回錯誤。 在沒有為 libcurl 指定適當的地址使用時,最有可能發生此問題。 請參閱 CURLOPT_FTPPORT。
CURLE_FTP_COULDNT_USE_REST (31) – FTP REST 命令返回錯誤。如果服務器正常,則應當不會發生這種情況。
CURLE_RANGE_ERROR (33) – 服務器不支持或不接受范圍請求。
CURLE_HTTP_POST_ERROR (34) – 此問題比較少見,主要由內部混亂引發。
CURLE_SSL_CONNECT_ERROR (35) – 同時使用 SSL/TLS 時可能會發生此錯誤。您可以訪問錯誤緩沖區查看相應信息,其中會對此問題進行更詳細的介紹??赡苁亲C書(文件格式、路徑、許可)、密碼及其他因素導致了此問題。
CURLE_FTP_BAD_DOWNLOAD_RESUME (36) – 嘗試恢復超過文件大小限制的 FTP 連接。
CURLE_FILE_COULDNT_READ_FILE (37) – 無法打開 FILE:// 路徑下的文件。原因很可能是文件路徑無法識別現有文件。 建議您檢查文件的訪問權限。
CURLE_LDAP_CANNOT_BIND (38) – LDAP 無法綁定。LDAP 綁定操作失敗。
CURLE_LDAP_SEARCH_FAILED (39) – LDAP 搜索無法進行。
CURLE_FUNCTION_NOT_FOUND (41) – 找不到函數。 找不到必要的 zlib 函數。
CURLE_ABORTED_BY_CALLBACK (42) – 由回調中止。 回調向 libcurl 返回了 “abort”。
CURLE_BAD_FUNCTION_ARGUMENT (43) – 內部錯誤。 使用了不正確的參數調用函數。
CURLE_INTERFACE_FAILED (45) – 界面錯誤。 指定的外部界面無法使用。 請通過 CURLOPT_INTERFACE 設置要使用哪個界面來處理外部連接的來源 IP 地址。 (此錯誤代碼以前又稱為 CURLE_HTTP_PORT_FAILED。)
CURLE_TOO_MANY_REDIRECTS (47) – 重定向過多。 進行重定向時,libcurl 達到了網頁點擊上限。請使用 CURLOPT_MAXREDIRS 設置上限。
CURLE_UNKNOWN_TELNET_OPTION (48) – 無法識別以 CURLOPT_TELNETOPTIONS 設置的選項。 請參閱相關文檔。
CURLE_TELNET_OPTION_SYNTAX (49) – telnet 選項字符串的格式不正確。
CURLE_PEER_FAILED_VERIFICATION (51) – 遠程服務器的 SSL 證書或 SSH md5 指紋不正確。
CURLE_GOT_NOTHING (52) – 服務器未返回任何數據,在相應情況下,未返回任何數據就屬于出現錯誤。
CURLE_SSL_ENGINE_NOTFOUND (53) – 找不到指定的加密引擎。
CURLE_SSL_ENGINE_SETFAILED (54) – 無法將選定的 SSL 加密引擎設為默認選項。
CURLE_SEND_ERROR (55) – 無法發送網絡數據。
CURLE_RECV_ERROR (56) – 接收網絡數據失敗。
CURLE_SSL_CERTPROBLEM (58) – 本地客戶端證書有問題
CURLE_SSL_CIPHER (59) – 無法使用指定的密鑰
CURLE_SSL_CACERT (60) – 無法使用已知的 CA 證書驗證對等證書
CURLE_BAD_CONTENT_ENCODING (61) – 無法識別傳輸編碼
CURLE_LDAP_INVALID_URL (62) – LDAP 網址無效
CURLE_FILESIZE_EXCEEDED (63) – 超過了文件大小上限
CURLE_USE_SSL_FAILED (64) – 請求的 FTP SSL 級別失敗
CURLE_SEND_FAIL_REWIND (65) – 進行發送操作時,curl 必須回轉數據以便重新傳輸,但回轉操作未能成功
CURLE_SSL_ENGINE_INITFAILED (66) – SSL 引擎初始化失敗
CURLE_LOGIN_DENIED (67) – 遠程服務器拒絕 curl 登錄(7.13.1 新增功能)
CURLE_TFTP_NOTFOUND (68) – 在 TFTP 服務器上找不到文件
CURLE_TFTP_PERM (69) – 在 TFTP 服務器上遇到權限問題
CURLE_REMOTE_DISK_FULL (70) – 服務器磁盤空間不足
CURLE_TFTP_ILLEGAL (71) – TFTP 操作非法
CURLE_TFTP_UNKNOWNID (72) – TFTP 傳輸 ID 未知
CURLE_REMOTE_FILE_EXISTS (73) – 文件已存在,無法覆蓋
CURLE_TFTP_NOSUCHUSER (74) – 運行正常的 TFTP 服務器不會返回此錯誤
CURLE_CONV_FAILED (75) – 字符轉換失敗
CURLE_CONV_REQD (76) – 調用方必須注冊轉換回調
CURLE_SSL_CACERT_BADFILE (77) – 讀取 SSL CA 證書時遇到問題(可能是路徑錯誤或訪問權限問題)
CURLE_REMOTE_FILE_NOT_FOUND (78) – 網址中引用的資源不存在
CURLE_SSH (79) – SSH 會話中發生無法識別的錯誤
CURLE_SSL_SHUTDOWN_FAILED (80) – 無法終止 SSL 連接

http://www.bkjia.com/PHPjc/632079.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632079.htmlTechArticle本文章來給大家介紹cURL函數庫錯誤碼說明之PHP curl_errno函數,有需要了解的朋友不防進入參考。 背景概述: 游戲接口是使用PHP cURL擴展進行...

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区三区视频播放| 日韩中文在线视频| 国产日韩欧美电影在线观看| 成人写真视频福利网| 国产成人激情视频| 亚洲精品按摩视频| 久久99精品久久久久久琪琪| 日本最新高清不卡中文字幕| 国产精品欧美日韩久久| 欧美午夜影院在线视频| 2019中文在线观看| 精品久久久久久久久久ntr影视| 97免费视频在线| 亚洲国产欧美一区二区丝袜黑人| 国产精品18久久久久久首页狼| 国产精品va在线播放我和闺蜜| 久久国产精品久久精品| 亚洲色图偷窥自拍| 91老司机精品视频| 欧美精品第一页在线播放| www.亚洲男人天堂| 国产精品av电影| 欧美成人合集magnet| 久久久精品视频成人| 成人免费淫片视频软件| 亚洲一区二区三区在线免费观看| 91超碰caoporn97人人| 久久影视电视剧凤归四时歌| 国产精品第10页| 青青草国产精品一区二区| 国产一区二区av| 国内精品久久久久久影视8| 黑人精品xxx一区一二区| 亚洲色图五月天| 91久久精品美女| 亚洲欧美国产精品专区久久| 992tv成人免费影院| 一区二区成人av| 国产午夜精品理论片a级探花| 精品久久久香蕉免费精品视频| 岛国av在线不卡| 亚洲成人网在线观看| 亚洲精美色品网站| 国产精品久久久久av| 欧美亚洲成人xxx| 91免费视频国产| 精品呦交小u女在线| 欧美激情国内偷拍| 亚洲成人精品久久| 国产精品亚洲综合天堂夜夜| 国产精品爽爽爽| 68精品久久久久久欧美| 亚洲精品自拍偷拍| 91精品视频在线播放| 大量国产精品视频| 国产精品第10页| 精品人伦一区二区三区蜜桃免费| 亚洲人成绝费网站色www| 亚洲直播在线一区| 日本精品久久久久影院| 91社影院在线观看| 久久综合色88| 亚洲影院色在线观看免费| 成人激情av在线| 麻豆成人在线看| 欧美电影免费观看| 爱福利视频一区| 欧美劲爆第一页| 综合久久五月天| 国产精品一区二区性色av| 久久免费观看视频| 亚洲高清色综合| 中文字幕精品视频| 久久久久久久香蕉网| 欧美激情综合色综合啪啪五月| 国产一区二区日韩精品欧美精品| 久久精品亚洲94久久精品| 国产在线一区二区三区| 欧美精品成人在线| 日韩美女激情视频| 久久成年人视频| 国产成人免费av| 97福利一区二区| 亚洲欧美日韩一区二区在线| 国产成人啪精品视频免费网| 国产偷亚洲偷欧美偷精品| 欧美成人免费va影院高清| 国产一区二区视频在线观看| 国内精品视频在线| 欧美性xxxxhd| 91成人性视频| 国产欧美日韩精品丝袜高跟鞋| 欧美成人在线网站| 欧美亚洲一区在线| 国产视频亚洲视频| 九色成人免费视频| 亚洲女人被黑人巨大进入al| 欧美日韩亚洲系列| 欧美激情在线播放| 亚洲成人教育av| 国产亚洲精品91在线| 91精品在线看| 2019国产精品自在线拍国产不卡| 亚洲一级一级97网| 91免费人成网站在线观看18| 国产精品白丝jk喷水视频一区| 国产91精品高潮白浆喷水| 亚洲最大在线视频| 欧美激情一区二区三级高清视频| 欧美高跟鞋交xxxxhd| 亚洲乱码国产乱码精品精| 亚洲影院高清在线| 正在播放欧美视频| 欧美孕妇孕交黑巨大网站| 性欧美激情精品| 亚洲第一av网站| 奇米4444一区二区三区| 日韩动漫免费观看电视剧高清| 日韩亚洲综合在线| 欧美在线激情视频| 日韩av中文字幕在线免费观看| 国产精品亚洲自拍| 一本大道久久加勒比香蕉| 国产精品电影观看| 成人欧美在线观看| 成人午夜激情网| 亚洲自拍偷拍一区| 日韩精品一区二区三区第95| 久久视频免费在线播放| 亚洲韩国日本中文字幕| 91在线免费视频| 欧美色道久久88综合亚洲精品| 国产成人av在线| 亚洲人成电影网站| 97人人模人人爽人人喊中文字| 啊v视频在线一区二区三区| 色综合天天综合网国产成人网| 国产欧美中文字幕| 亚洲第一天堂无码专区| 亚洲欧洲第一视频| 精品久久久久久| 影音先锋欧美精品| 国产69精品久久久| 欧美精品精品精品精品免费| 国产在线拍偷自揄拍精品| 国产精品久久久久高潮| 久久人人爽人人爽人人片亚洲| 亚洲色无码播放| 日韩精品一区二区视频| 国产精品揄拍500视频| 久久久久久久久网站| 国产成人精品在线视频| 久久亚洲精品一区二区| 亚洲一区久久久| 久久青草精品视频免费观看| 伊人伊成久久人综合网小说| 亚洲免费中文字幕| 性欧美xxxx| 欧美电影在线观看高清| 538国产精品视频一区二区| 日韩最新免费不卡| 久久久久久久久亚洲| 日韩欧美高清在线视频| 欧美精品久久久久久久免费观看|