今天实习报到研究部门老大给的代码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等待脚本执行完毕的时间,此时间以秒计算