今天實習報到研究部門老大給的代碼demo,裏面有一段代碼如下:
//@todo: 建議增加賬戶uid驗證機制避免失誤發送
$param["source"] = self::$_source;
$param_str = http_build_query($param);
$url = self::$_url_prefix . $url. "?".$param_str;
$signature = base64_encode(hash_hmac("sha1", 'uid='.$this->_uid, self::$_secret, true));
$tauthHeader = array('Authorization:TAuth2 token="'.urlencode(self::$_token).'", param="uid='.$this->_uid.'", sign="'.urlencode($signature).'"');
$ch = curl_init();
$res = curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
//curl_setopt($ch, CURLOPT_TIMEOUT, 60);
if($post_data) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$tauthHeader);
$result = curl_exec ($ch);
curl_close($ch);
結果本地測試時,出現問題curl獲取線上接口內容時只能執行一次,多次執行時就會報錯Fatal error: Maximum execution time of 1 seconds exceeded,當然這個不是什麼問題,這裏記錄一下解決方案,可以在上面代碼中加入set_time_limit(0);//即不限制接口響應時間
或者修改php.ini中的
max_input_time = 90//此變量可以以秒爲單位對通過POST、GET以及PUT方式接收數據時間進行限制。如果應用程序所運行環境處在低速鏈路上,則需要增加此值以適應接收數據所需的更多時間
max_execution_time=30//變量max_execution_time設置了在強制終止腳本前PHP等待腳本執行完畢的時間,此時間以秒計算