本帖最后由 tengfei 于 2026-1-19 14:12 编辑
<?php
// 获取查询参数 id
$id = isset($_GET['id']) ? $_GET['id'] : null;
// 初始化 cURL 会话
$ch = curl_init();
// 配置第一个请求的 URL 和请求头
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'; // 第一个页面的 referer
$port = 8233;
} 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'; // 第二个页面的 referer
$port = 8234;
} 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
]);
// 处理 Cookie,会话保持
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // 保存 cookie 到文件
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // 使用保存的 cookie
// 执行请求并获取响应
$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])) {
// 获取视频流地址
$video_url = $matches[1];
// 提取视频流的 Host
$parsed_url = parse_url($video_url);
$host = $parsed_url['host']; // 获取主机名
// 如果 URL 中包含端口信息,就使用该端口,否则使用默认的端口
$port = isset($parsed_url['port']) ? $parsed_url['port'] : $port;
// 动态生成最终的 .m3u8 播放地址
$final_video_url = "http://$host:$port" . $parsed_url['path'];
// 重定向到获取的 .m3u8 播放地址
header('Location: ' . $final_video_url);
exit; // 必须调用 exit 来确保脚本终止执行
} else {
// 如果未找到视频流地址
echo "视频流地址未找到";
}
// 关闭 cURL 会话
curl_close($ch);
?>
书画线路1,hhtp/https:你的ip/域名:端口/php名称.php?id=1
书画线路2,hhtp/https:你的ip/域名:端口/php名称.php?id=2 |