• curl发起网络请求


    curl发起网络请求

    主体函数:

    <?php
    /**
     * 发起网络请求
     * @param string $url
     * @param $data
     * @param array $header
     * @return bool|string
     */
    function http_request(string $url, $data = [], array $header = []) {
        $ret = '';
        // 1、初始化
        $ch = curl_init();
        // 2、相关配置
        # 设置请求的URL地址
        curl_setopt($ch, CURLOPT_URL, $url);
        # 设置一下执行成功后不直接返回到客户端
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        # 设置超时时间  单位是秒
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        # 不进行证书的检测
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        # 伪造一个请求的浏览器型号
        curl_setopt($ch, CURLOPT_USERAGENT, 'msie');
    
        // 表示有请求体,是POST的提交
        if (!empty($data)) {
            # 指明是一个POST请求
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            if (is_string($data)) {
                # 设置头信息,告诉接受者我们发送的数据类型
                curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
            }
        }
        // 3、执行
        $ret = curl_exec($ch);
        # 请求的错误码 为0表示请求正确,大于0则表求请求失败的
        if (curl_errno($ch) > 0) {
            echo curl_error($ch);
            exit;
        }
        // 4、关闭请求资源
        curl_close($ch);
        return $ret;
    }

    调用函数:

    <?php
    //推荐使用curl
    //引入curl的自定义函数
    include __DIR__.'/function.php';
    
    $url = '*********************';
    
    $html = http_request($url);
    
    //正则表达式匹配 video
    
    //修饰符
    //i 不区分大小写 U 禁止贪婪 s忽略换行
    
    $preg = '#<a title="(.*)"></a>#is';
    
    preg_match_all($preg,$html,$arr);
    
    print_r($arr);
  • 相关阅读:
    积性函数大全(欧拉函数、莫比乌斯反演、杜教筛……)
    Codeforces 1427 G.One Billion Shades of Grey
    Codeforces Global Round 11 A-F题解
    一般难度模板复习
    (补充)证明线性递推相关的Hamilton-Cayley定理
    [ZJOI2018]树
    [ICPC-Beijing 2006]狼抓兔子
    P4869 albus就是要第一个出场
    浅谈算法——线性基
    [COCI2017-2018#1] Deda
  • 原文地址:https://www.cnblogs.com/zqblog1314/p/13322999.html
Copyright © 2020-2023  润新知