下面我们来学习一些PHP的函数:
resource curl_init ([ string $url = NULL ] )
:初始化一个新的会话(session),返回一个cURL句柄,这个句柄将会用在curl_setopt()
、curl_exec()
、curl_close()
bool curl_setopt ( resource $ch , int $option , mixed $value )
:为给定的cURL 对话(session)句柄设置参数—-ch:是由curl_init()返回的cURL句柄
、option:设置的CURLOPT_XXX选项
、value:选项option的值
mixed curl_exec (resource $ch)
:执行给定的cURL对话(session),成功的话,返回TRUE,失败的话,返回FALSE。但是,如果CURLOPT_RETURNTRANSFER
参数被设置,成功会返回结果,失败会返回FALSE。void curl_close ( resource $ch )
:关闭cURL对话,释放所有的资源。cURL句柄,ch,也会被删除。
示例代码:
public function curl($action, $params,$contentType='urlencoded') {
$action = self::SERVERAPIURL.$action.'.'.$this->format;
$httpHeader = $this->createHttpHeader();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $action);
curl_setopt($ch, CURLOPT_POST, 1);
if ($contentType=='urlencoded') {
$httpHeader[] = 'Content-Type:application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->build_query($params));
}
if ($contentType=='json') {
$httpHeader[] = 'Content-Type:Application/json';
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params) );
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); //处理http证书问题
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ret = curl_exec($ch);
if (false === $ret) {
$ret = curl_errno($ch);
}
curl_close($ch);
return $ret;
}