You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确发送GET请求?浏览器正常PHP无数据返回问题

解决PHP发送GET请求无法获取数据的问题

我帮你排查下代码里的问题,一步步来修正:

主要问题分析

你的代码里有几个关键错误导致请求失败:

  • HTTP Header格式错误:多个请求头字段没有用换行符分隔,服务器无法正确解析这些头部信息
  • 变量名拼写错误:输出时漏写了变量的美元符号
  • 未处理压缩响应:请求头声明接受gzip压缩,但默认没有解压逻辑

修正后的代码

<?php
// 修正header格式:每个字段用\r\n分隔,最后追加\r\n结束头部
$headers = implode("\r\n", [
    "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0",
    "Accept-Encoding: gzip, deflate",
    "Accept: */*"
]) . "\r\n";

$opts = [
    'http' => [
        'method' => "GET",
        'proxy' => $proxy, // 确保$proxy变量是正确的格式,比如tcp://ip:port
        'header' => $headers
    ]
];

$context = stream_context_create($opts);
$url2 = "http://50.7.195.2:25461/live/***/***/6089.m3u8?token=HxZZBUsLRgMaAAAIUwpWAwcMCgUGWg8OAwBTCwBWVQFVDFBQXFoADFpEHBIRRkJRBFRnWVQbAw5VW18UFkdEABZrWAAaWUYNAVcCCEAeEkAMVF0SCgkVGhUKAhoOEAZVUw0CRhRBAUFMA0JeA15vUABPUVNVGwNWEA8KFBZdWToAUVwFVgdGAxpWEhxAW0NERwMaeRB/WEsRLQNMFH5jIUYYEwZRFxZYTAMSCkADBw1XGxQSU1ZMVhERHxoOEHAnRhgTAUAXAVdLD19eQAgSWVZMABIcG1BLOhEDS0BAUgQJUUNGAkFUGxREXVEabVNbC1ddU0RQVlYWQVwaBRAbRwlbXw1MDBZmSA9UElgQAQNdDgsSTQ==";
$data = file_get_contents($url2, false, $context);

// 处理gzip压缩的响应
if (function_exists('gzdecode') && !empty($http_response_header)) {
    foreach ($http_response_header as $header) {
        if (strpos($header, 'Content-Encoding: gzip') !== false) {
            $data = gzdecode($data);
            break;
        }
    }
}

echo $data; // 修正变量名,加上$
?>

额外说明

  1. 代理格式检查:确保$proxy变量的格式正确,比如tcp://127.0.0.1:8080,HTTP代理通常采用这种格式。
  2. 错误调试:可以开启PHP错误提示(error_reporting(E_ALL); ini_set('display_errors', 1);),这样能看到请求过程中的具体错误信息,方便进一步排查。
  3. 更可靠的替代方案:如果file_get_contents还是有问题,推荐使用cURL库,它对HTTP请求的支持更灵活,调试也更方便:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0");
curl_setopt($ch, CURLOPT_ACCEPT_ENCODING, "gzip, deflate");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 可选:关闭SSL验证(如果目标站点证书有问题)
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$data = curl_exec($ch);

// 处理压缩响应
if (curl_getinfo($ch, CURLINFO_CONTENT_ENCODING) === 'gzip' && function_exists('gzdecode')) {
    $data = gzdecode($data);
}

// 检查cURL错误
if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
}

curl_close($ch);
echo $data;
?>

内容的提问来源于stack exchange,提问作者golar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:06:38