php curl 設定超時

2021-06-23 00:23:56 字數 1274 閱讀 9533

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...