curl学习笔记(以php为例)

1、demo,抓取百度页码代码:html

        $url = 'https://www.baidu.com/';
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
        curl_setopt($ch, CURLOPT_HEADER, FALSE);
        curl_setopt($ch, CURLOPT_TIMEOUT, 120);
        $html = curl_exec($ch);
        curl_close($ch);
        var_dump($html);

2、curl函数介绍:json

一、curl_init($url):初始化curl回话,返回资源类型curl

二、curl_setopt($ch, $option, $value):为curl设置相应的常量,$ch为curl_init()返回的资源句柄函数

三、curl_setopt_array($ch, $options):批量设置常量ui

四、curl_error($ch):返回当前会话最后一次错误的字符串this

五、curl_exec($ch):执行curl会话url

六、curl_getinfo($ch):获取一个curl链接资源句柄信息spa

七、curl_close:关闭curl会话code

3、curl预约义常量htm

一、CURLOPT_HEADER:将头文件的信息做为数据流输出

 

 

4、案例:

方法:

    public function curlTool($url, $params = [], $header = [], $method = 'GET')
    {
        $opts = [
            CURLOPT_TIMEOUT => 30,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYHOST => FALSE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_HTTPHEADER => $header,
            CURLOPT_HEADER => FALSE,
            CURLOPT_PORT => 82
        ];
        switch (strtoupper($method)) {
            case 'GET' :
                $opts[CURLOPT_URL] = $url . '?' . http_build_query($params);
                $opts[CURLOPT_POST] = FALSE;
                break;
            case 'POST':
                $opts[CURLOPT_URL] = $url;
                $opts[CURLOPT_POST] = TRUE;
                $opts[CURLOPT_POSTFIELDS] = $params;
                break;
        }

        $ch = curl_init($url);
        curl_setopt_array($ch, $opts);
        $result = curl_exec($ch);
        $error = curl_error($ch);
        curl_close($ch);
        if ($error) {
            die('curl执行出错error:' . $error);
        }
        var_dump(json_decode($result));
    }

调用:

    public function test()
    {
        $url = 'url';
        $header = [
            'test:test'
        ];
        $params = [
            'test' => test
        ];
        $this->curlTool($url, $params, $header);

    }
相关文章
相关标签/搜索