PHP学习之curl_init等知识

来源:互联网 发布:照片比较软件 编辑:程序博客网 时间:2024/06/07 11:08

下面我们来学习一些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;    }
0 0