本帖最后由 tengfei 于 2026-1-19 14:43 编辑
<?php
// 获取查询参数 id
$id = $_GET['id'] ?? null;
// 初始化 cURL 会话
$ch = curl_init();
// 根据 id 配置请求 URL 和 referer
if ($id == 1) {
curl_setopt($ch, CURLOPT_URL, 'http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx');
$referer = 'http://web.shtv.net.cn/MobileWeb/OnlineLiveTV59.aspx';
} elseif ($id == 2) {
curl_setopt($ch, CURLOPT_URL, 'http://web.shtv.net.cn/MobileWeb/OnlineLiveTV59.aspx');
$referer = 'http://web.shtv.net.cn/MobileWeb/OnlineLive.aspx';
} else {
echo "无效的 id 参数";
exit;
}
// 设置 cURL 请求选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应,而不是直接输出
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 允许跟随重定向
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Referer: ' . $referer, // 设置 Referer 请求头
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36', // 设置 User-Agent
]);
// 执行请求并获取响应
$html = curl_exec($ch);
// 检查请求是否成功
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch);
exit;
}
// 使用正则表达式匹配并提取 .m3u8 视频流地址
preg_match('/src="(http:\/\/[^"]+\.m3u8)"/i', $html, $matches);
// 检查是否找到了 .m3u8 地址
if (!empty($matches[1])) {
// 直接重定向到 .m3u8 地址
header('Location: ' . $matches[1]);
exit; // 必须调用 exit 来确保脚本终止执行
} else {
// 如果未找到视频流地址
echo "视频流地址未找到";
}
// 关闭 cURL 会话
curl_close($ch);
?>
根据admin提示
拿到$matches[1],直接Location就完事了
现已修正
|