通常我們存取HTTP方式很多,主要是:curl, socket, file_get_contents() 等方法。
如果碰到對方伺服器一直沒有回應的時候,我們就悲劇了,很容易把整個伺服器搞死,所以在訪問http的時候也需要考慮逾時的問題。
[ CURL 存取HTTP]
#CURL 是我們常用的一種比較可靠的存取HTTP協定介面的lib庫,性能高,還有一些並發支援的功能等。 (推薦學習:PHP程式設計從入門到精通)
還是讓我們使用cURL 擴充功能來處理超時控製吧
假如你想更精確的處理逾時,就使用cURL 擴展,它可以設定連接逾時和讀取逾時(CURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT)。
假如希望控制 HTTP 介面必須在毫秒層級傳回,也可以使用 CURLOPT_TIMEOUT_MS and CURLOPT_CONNECTTIMEOUT_M 常數。
注意假如使用這兩個常數,必須設定curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
##神奇的來了,cURL 擴充機制很特別,在指定的讀取時間取得到多少資料就回傳多少,然後呼叫也終止,程式並不會報錯透過程式碼看一下:function e_curl() { global $url; $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOSIGNAL, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); $response = curl_exec($ch); if ($response === false) { $info = curl_getinfo($ch); if ($info['http_code'] === 0) { return false; } } return true;}e_curl();
以上是php介面逾時如何處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!