首先解決file_get_contents的超時問題,在超時返回錯誤後就象js中的settimeout那樣進行一次嘗試,錯誤超過3次或者5次後就確認為無法連線伺服器而徹底放棄。
這裡就簡單介紹兩種解決方法:
一、增加超時的時間限制
注意:set_time_limit只是設定你的php程式的超時時間,而不是file_get_contents函式讀取url的超時時間。
我一開始以為set_time_limit也能影響到file_get_contents,後來經測試是無效的。真正的修改file_get_contents延時可以用resource $context的timeout引數:
php程式碼
二、多次嘗試
php程式碼
以上方法對付超時已經ok了。接下來演示一下用file_get_contents實現post,如下:
php程式碼
function post($url, $post = null)
return file_get_contents($url, false, stream_context_create($context));
}$data = array (
'name' => 'test',
'email' => '[email protected]',
'submit' => 'submit',
);echo post('', $data);
注意檔案頭的set_time_out否則整個檔案都得超時了
file get contents高階用法
首先解決file get contents的超時問題,在超時返回錯誤後就象js中的settimeout那樣進行一次嘗試,錯誤超過3次或者5次後就確認為無法連線伺服器而徹底放棄。這裡就簡單介紹兩種解決方法 一 增加超時的時間限制 注意 set time limit只是設定你的php程式的超時時間,而不...
file get contents請求失敗處理
注釋掉除用於處理解密的filter 此filter無法注釋掉,因為客戶端正常請求必須要經過此filter處理,否則將出現無法訪問的閘道器內部異常錯誤 之外的所有自定義filter,目的是排除法查詢是否由於某乙個filter寫法存在問題所導致。結論 仍出現400,定位問題失敗!回顧問題描述,因為不是每...
關於file get contents抓取頁面超時
前幾日寫了乙個定位測距的功能,一直用的都是file get contents 這個函式抓取定位後頁面的資訊,只有有一天,這個函式一直無法執行,由於超時,導致功能無法實現,改進方法一 由於file get contents 函式失敗,就會返回false,由此來判斷,並進行迴圈。json1 json d...