php curl

1.先初始化 curl_init() 变量

2.设置变量的 URL header 超时 DNS curl_setopt()

3.执行 curl_exec()

4.检查执行结果

5.关闭curl curl_close()

    $ch = curl_init();
    
    // 设置 CURL 核心参数
    curl_setopt($ch, CURLOPT_URL, $url);
    // 将结果返回而不是直接输出
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 模拟浏览器 User-Agent(和原代码一致)
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36');
    
    // ========== 针对你纽约VPS的关键优化 ==========
    // 连接超时(重点!比原代码的10秒短,避免卡死)
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    // 总请求超时(建议3秒内,比原10秒更合理)
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    // 启用DNS缓存,避免重复解析域名拖慢速度
    curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, true);
    // 关闭TCP延迟,提升传输速度
    curl_setopt($ch, CURLOPT_TCP_NODELAY, true);
    // 禁用SSL验证(因为你用的是http,这行只是兜底,防止后续改https出问题)
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $response = curl_exec($ch);
    if ($response === false) {
            $errorMsg = curl_error($ch);
            $errorCode = curl_errno($ch);
            throw new Exception("CURL请求失败 [{$errorCode}]:{$errorMsg}");
        }
            // 保留原有的编码转换逻辑(GBK转UTF-8)
        $utf8Str = mb_convert_encoding($response, 'UTF-8', 'GBK');
        
        // 关闭CURL资源
        curl_close($ch);

此条目发表在None分类目录。将固定链接加入收藏夹。

发表回复