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);
原文地址:https://www.cnblogs.com/zqblog1314/p/13322999.html