php curl超時設定詳解 本文介紹下,在php中使用curl時,進行超時設定的詳細方法,大家參考下,希望對大家有一定的幫助.
訪問http方式很多,可以使用curl, socket, file_get_contents() 等方法。
在訪問http時,需要考慮超時的問題。
一、curl 訪問http
curl 是常用的訪問http協議介面的lib庫,效能高,還有一些併發支援的功能等。
curl_setopt($ch, opt) 可以設定一些超時的設定,主要包括:
*(重要) curlopt_timeout 設定curl允許執行的最長秒數。
*(重要) curlopt_timeout_ms 設定curl允許執行的最長毫秒數。
(在curl 7.16.2中被加入。從php 5.2.3起可使用)
curlopt_connecttimeout 在發起連線前等待的時間,如果設定為0,則無限等待。
curlopt_connecttimeout_ms 嘗試連線等待的時間,以毫秒為單位。如果設定為0,則無限等待。 (在curl 7.16.2中被加入。從php 5.2.3開始可用) curlopt_dns_cache_timeout 設定在記憶體中儲存dns資訊的時間,預設為120秒。
1,curl普通秒級超時:
$ch = curl_init();
curl_setopt($ch, curlopt_url,$url);
curl_setopt($ch, curlopt_returntransfer,1);
curl_setopt($ch, curlopt_timeout,60); //只需要設定乙個秒的數量就可以
2,curl普通秒級超時使用:
curl_setopt($ch, curlopt_timeout,60);
3,curl如果需要進行毫秒超時,需要增加:
curl_easy_setopt(curl, curlopt_nosignal,1l);
//或者
curl_setopt ( $ch, curlopt_nosignal,true);//支援毫秒級別超時設定
PHP curl 超時時間設定
curlopt timeout好理解,就是整個curl請求過程 http request response 的超時限制,以秒為單位,設定為0則無限制。curlopt connecttimeout比較難理解,目前確認的是,這是curl請求過程中的一小部分,因此必須要設得比curlopt timeout...
php curl 超時處理
php curl處理請求超時 背景 寫了乙個api管理的工具,增加了api請求的的工具,某些介面請求時間比較長,某些介面時間必須要短,希望超過超時時間的請求返回其它的狀態碼,要跟失敗或者curl失敗區分開,本質上雖然都是curl失敗但是從需求角度要區分開,但是php的curl沒有類似事件的一些操作 ...
PHP curl超時問題
今天除錯乙個非常老的 時 發現nginx伺服器超時 改了下nginx配置 發現是後台指令碼一直等待 排查到最後發現是curl 超時引起的等待 具體解決方案 curl setopt this ch,curlopt url,url curl setopt this ch,curlopt returntr...