找回密码
 注册需QQ邮箱验证
搜索
查看: 379|回复: 17

服务器托管运行php方案

[复制链接]

签到天数: 12 天

[LV.3]圆转纯熟

发表于 2025-5-2 23:30:44 | 显示全部楼层 |阅读模式
感谢gaoma大神提供的方案 :https://iptv.cc/thread-5725-1-1.html

这里只对代码做了简单改动,使php代理可以在服务器上托管。

直接服务器上传这两个php,再创建一个 sz.json文件(记得权限664),用来缓存数组。 服务器定时运行下面php,目的缓存最新数组。
  1. <?php
  2. $n = [
  3.    'cctv1?id=1725&uin=1632?CCTV1综合',
  4.    'dyjc?id=1793&uin=2311?CCTV第一剧场',
  5.    'zhms?id=3782&uin=4251?中华美食',

  6.    'cptv?id=3341&uin=3698?昌平电视台',

  7.    'dqzh?id=2281&uin=1463?大庆新闻综合',
  8.    'dqjy?id=2283&uin=1463?大庆教育',
  9.    'nazh?id=2475&uin=3543?牡丹江宁安综合',

  10.    'tlzh?id=2584&uin=3816?铁岭新闻综合',
  11.    'jptv1?id=1066&uin=1332?大连金普一套',
  12.    'jptv2?id=2598&uin=1332?大连金普二套',

  13.    'bdzh?id=3067&uin=1630?保定新闻综合',
  14.    'bdgg?id=3068&uin=1630?保定公共',
  15.    'bdsh?id=3069&uin=1630?保定生活健康',
  16.    'jzzh?id=732&uin=1724?衡水冀州综合',
  17.    'wqzh?id=3654&uin=1425?衡水武强综合',

  18.    'qxtv?id=2988&uin=4048?太原清徐电视台',
  19.    'hmxw?id=2125&uin=2556?临汾侯马新闻综合',
  20.    'qwzh?id=1203&uin=2653?临汾曲沃新闻综合',
  21.    'lltv1?id=2652&uin=2268?吕梁一套',
  22.    'lltv2?id=2653&uin=2268?吕梁二套',
  23.    'jctv?id=3406&uin=1779?吕梁交城电视台',
  24.    'lztv?id=3407&uin=1723?长治潞州电视台',
  25.    'rczh?id=2511&uin=3580?运城芮城综合',

  26.    'zbzh?id=2308&uin=3185?淄博新闻综合',
  27.    'jxzh?id=1306&uin=2606?济宁嘉祥新闻综合',
  28.    'jxsh?id=1307&uin=2606?济宁嘉祥生活',
  29.    'hztv1?id=3492&uin=4042?菏泽一套',
  30.    'hztv2?id=3493&uin=4042?菏泽二套',
  31.    'hztv3?id=3520&uin=4042?菏泽三套',

  32.    'ngzh?id=1588&uin=2465?宣城宁国新闻综合',
  33.    'sszh?id=3390&uin=4180?安庆宿松新闻综合',
  34.    'ssxq?id=3389&uin=4180?安庆宿松戏曲文艺',
  35.    'tczh?id=3350&uin=4104?安庆桐城综合',
  36.    'dszh?id=2334&uin=1364?宿州砀山新闻综合',
  37.    'fyzh?id=2851&uin=2577?阜阳新闻综合',
  38.    'fyjy?id=2852&uin=2577?阜阳教育',
  39.    'fygg?id=2853&uin=2577?阜阳公共',
  40.    'fyds?id=2854&uin=2577?阜阳都市文艺',
  41.    'fdzh?id=3780&uin=1167?肥东新闻综合',

  42.    'nyzh?id=142&uin=1081?南阳新闻综合',
  43.    'nygg?id=295&uin=1081?南阳公共',
  44.    'nykj?id=296&uin=1081?南阳科教',
  45.    'pyzh?id=3662&uin=3616?濮阳新闻综合',
  46.    'pygg?id=3017&uin=3616?濮阳公共',
  47.    'pyxtv?id=3753&uin=3616?濮阳县电视台',
  48.    'xxzh?id=3706&uin=4436?新乡新闻综合',
  49.    'xxgg?id=3708&uin=4436?新乡公共',
  50.    'hbzh?id=340&uin=1465?鹤壁新闻综合',
  51.    'pdsxwzh?id=1969&uin=2367?平顶山新闻综合',

  52.    'xyzh?id=3061&uin=1500?襄阳综合',
  53.    'xygg?id=2337&uin=1500?襄阳公共',
  54.    'xyjj?id=2675&uin=1500?襄阳经济生活',
  55.    'szzh?id=304&uin=1487?随州综合',
  56.    'sznc?id=305&uin=1487?随州农村',
  57.    'xtzh?id=509&uin=1832?仙桃新闻综合',
  58.    'cdzh?id=1982&uin=3165?武汉蔡甸新闻综合',
  59.    'xzzh?id=2904&uin=3951?武汉新洲综合',
  60.    'hszh?id=3031&uin=3065?黄石新闻综合',
  61.    'hsds?id=3032&uin=3065?黄石都市',
  62.    'hsgg?id=3623&uin=3065?黄石公共',
  63.    'zbhs?id=3071&uin=3065?直播黄石',
  64.    'eszh?id=1812&uin=3179?恩施新闻综合',
  65.    'eswl?id=1811&uin=3179?恩施文旅',
  66.    'bdtv?id=3522&uin=3179?巴东综合',
  67.    'xfzh?id=3567&uin=3179?咸丰综合',
  68.    'jmzh?id=3612&uin=1936?荆门新闻综合',

  69.    'hnws?id=680&uin=1202?湖南卫视',
  70.    'hnws2?id=1726&uin=1632?湖南卫视2',
  71.    'csxw?id=346&uin=1648?长沙新闻',
  72.    'cszf?id=348&uin=1648?长沙政法',
  73.    'lyxw?id=1788&uin=3275?长沙浏阳电视台',
  74.    'yyzh?id=1699&uin=2193?岳阳新闻综合',
  75.    'yywl?id=1701&uin=2193?岳阳文旅都市',
  76.    'zzzh?id=2053&uin=1366?株洲新闻综合',
  77.    'nxxw?id=1724&uin=1632?益阳南县新闻',
  78.    'xxxw?id=2581&uin=3815?湘西综合',
  79.    'xxgg?id=2582&uin=3815?湘西公共',
  80.    'yzzh?id=3088&uin=4100?郴州宜章新闻综合',

  81.    'ytzh?id=2574&uin=3313?鹰潭新闻综合',

  82.    'jnzh?id=2505&uin=3579?南京江宁综合',
  83.    'gyzh?id=777&uin=1909?连云港灌云综合',
  84.    'hazh?id=2778&uin=1610?淮安综合',
  85.    'wxha?id=808&uin=1610?无线淮安',
  86.    'xytv1?id=3177&uin=1812?徐州新沂1套',
  87.    'xytv2?id=3178&uin=1812?徐州新沂2套',
  88.    'xydy?id=2648&uin=1812?徐州新沂老电影',

  89.    'lazh?id=2747&uin=3568?杭州临安综合',
  90.    'fyxw?id=1181&uin=1482?杭州富阳新闻综合',
  91.    'lpxw?id=2513&uin=3767?杭州临平新闻',
  92.    'jdzh?id=187&uin=1176?杭州建德综合',
  93.    'tlxw?id=3566&uin=1163?杭州桐庐新闻综合',
  94.    'yqzh?id=171&uin=1356?温州乐清综合',
  95.    'yqxw?id=170&uin=1356?温州乐清新闻',
  96.    'yjzh?id=1335&uin=2768?温州永嘉新闻综合',
  97.    'wlzh?id=911&uin=1639?台州温岭新闻综合',
  98.    'wlms?id=1287&uin=1639?台州温岭民生休闲',
  99.    'xjzh?id=1603&uin=2515?台州仙居新闻综合',
  100.    'xcxw?id=1361&uin=2840?绍兴新昌新闻',
  101.    'xcsh?id=1362&uin=2840?绍兴新昌生活',
  102.    'nhzh?id=1423&uin=1329?宁波宁海新闻综合',
  103.    'fhzh?id=3152&uin=3512?宁波奉化新闻综合',
  104.    'cxzh?id=3697&uin=1346?宁波慈溪新闻综合',
  105.    'ajxw?id=1499&uin=1253?湖州安吉新闻综合',
  106.    'ajsh?id=1526&uin=1253?湖州安吉生活影视',
  107.    'jhzh?id=3711&uin=4099?金华新闻综合',
  108.    'ywzh?id=1796&uin=3071?金华义乌新闻综合',
  109.    'ywsm?id=2133&uin=3071?金华义乌商贸',
  110.    'ywgg?id=3090&uin=3071?金华义乌公共文艺',
  111.    'lxzh?id=1185&uin=1324?金华兰溪新闻综合',
  112.    'txzh?id=1511&uin=1043?嘉兴桐乡新闻综合',

  113.    'fqzh?id=699&uin=1945?福州福清综合',
  114.    'mhzh?id=2068&uin=2656?福州闽侯综合',
  115.    'ptzh?id=907&uin=1118?平潭新闻综合',
  116.    'ptly?id=908&uin=1118?平潭旅游文化',
  117.    'yazh?id=2597&uin=3454?三明永安综合',
  118.    'sxzh?id=425&uin=1567?三明沙县综合',
  119.    'yxzh?id=765&uin=2055?三明尤溪新闻综合',
  120.    'yxly?id=767&uin=2055?三明尤溪旅游宣传',
  121.    'qgtv?id=2333&uin=3708?泉州泉港一套',
  122.    'dhzh?id=2467&uin=3164?泉州德化综合',
  123.    'yctv1?id=1792&uin=2311?泉州永春综合',
  124.    'yctv2?id=1793&uin=2311?泉州永春公共',
  125.    'zztv1?id=175&uin=1116?漳州一套',
  126.    'zpzh?id=2803&uin=3350?漳州漳浦综合',
  127.    'jmtv?id=3102&uin=4113?厦门集美综合',

  128.    'xytv?id=643&uin=1629?茂名信宜电视台',
  129.    'kpzh?id=1434&uin=1132?江门开平综合',
  130.    'kpsh?id=1435&uin=1132?江门开平生活',
  131.    'zctv?id=3454&uin=3047?广州增城台',

  132.    'lzzh?id=1902&uin=3370?柳州新闻综合',
  133.    'lzkj?id=1808&uin=3370?柳州科教',
  134.    'ylzh?id=3289&uin=4042?玉林新闻综合',
  135.    'ylgg?id=3290&uin=4042?玉林公共',

  136.    'gy1?id=3398&uin=4263?贵阳新闻综合',
  137.    'yjtv?id=3043&uin=4088?铜仁印江电视台',

  138.    'njtv?id=1670&uin=1822?巴中南江电视台',
  139.    'mztv?id=1933&uin=3277?德阳绵竹电视',
  140.    'mztv2?id=3686&uin=3277?德阳绵竹电视2',
  141.    'shtv?id=391&uin=1743?遂宁射洪综合',

  142.    'akstv1?id=2229&uin=3643?阿克苏1套汉语综合',
  143.    'akstv2?id=2233&uin=3643?阿克苏2套维语综合',
  144.    'aksdj?id=2234&uin=3643?阿克苏党员远程教育',
  145.    'bejha?id=3377&uin=4239?阿勒泰布尔津哈语综合',

  146.    'dztv?id=1330&uin=1669?海南儋州台',
  147.    ];

  148. $result = [];

  149. for ($i = 0; $i < count($n); $i++) {
  150.     $ar = explode("?", $n[$i]);
  151.     $pid = $ar[0];             // 如:cctv1
  152.     $id = $ar[1];              // 如:id=1725&uin=1632
  153.     $pn = $ar[2] ?? '未知频道'; // 频道名,容错处理

  154.     $apiUrl = "https://1812501212048408.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/node-api.online/node-api/tv/getPlayAddress?{$id}&clientId=奥点有效Id" . getrand(8);

  155.     $h = [
  156.         "Referer: https://web.guangdianyun.tv/",
  157.         "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
  158.     ];

  159.     $ch = curl_init($apiUrl);
  160.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  161.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  162.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  163.     curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
  164.     $response = curl_exec($ch);
  165.     curl_close($ch);

  166.     $data = json_decode($response, true);

  167.     if (isset($data['data']['hlsUrl'])) {
  168.         $extra_key = explode("extra_key=", $data['data']['hlsUrl'])[1] ?? '';
  169.         $result[$pid] = [$id, $extra_key]; // 保存格式 ['cctv1' => ['id=xxx&uin=xxx', 'extra_key']]
  170.     }
  171. }

  172. file_put_contents(__DIR__ . '/sz.json', json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

  173. echo "数据已成功写入 sz.json 文件。";

  174. function getrand($length) {
  175.     $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
  176.     $randomString = '';
  177.     for ($i = 0; $i < $length; $i++) {
  178.         $randomIndex = random_int(0, strlen($characters) - 1);
  179.         $randomString .= $characters[$randomIndex];
  180.     }
  181.     return $randomString;
  182. }
  183. ?>
复制代码
  1. <?php
  2. error_reporting(0);

  3. // 读取 sz.json 文件并解析为数组
  4. $jsonData = file_get_contents(__DIR__ . '/sz.json');
  5. $n = json_decode($jsonData, true);

  6. // 获取频道 ID,默认为 cctv1
  7. $id = isset($_GET['id']) ? $_GET['id'] : 'cctv1';

  8. // 判断 ID 是否存在于 $n 中
  9. if (!isset($n[$id])) {
  10.     exit('Invalid channel ID.');
  11. }

  12. // 构建 API 请求 URL
  13. $apiUrl = "https://1812501212048408.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/node-api.online/node-api/tv/getPlayAddress?" . $n[$id][0] . "&clientId=奥点有效Id" . getrand(8);

  14. // 设置请求头
  15. $h = [
  16.     "Referer: https://web.guangdianyun.tv/",
  17.     "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
  18. ];

  19. // 发送 CURL 请求
  20. $ch = curl_init($apiUrl);
  21. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  22. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  23. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  24. curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
  25. $response = curl_exec($ch);
  26. curl_close($ch);

  27. // 解析返回数据
  28. $data = json_decode($response, true);

  29. // 拼接播放地址
  30. $url = explode("&extra_key", $data['data']['hlsUrl'])[0] . "&extra_key=" . $n[$id][1];

  31. $burl = dirname($url)."/";

  32. $ch = curl_init($url);
  33. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  34. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  35. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  36. curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
  37. $res = curl_exec($ch);
  38. curl_close($ch);
  39. header('Content-Type: application/vnd.apple.mpegurl');
  40. print_r(preg_replace("/(.*?.ts)/i",$burl."$1",$res));


  41. // 生成随机字符串函数
  42. function getrand($length) {
  43.     $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
  44.     $randomString = '';
  45.     for ($i = 0; $i < $length; $i++) {
  46.         $randomIndex = random_int(0, strlen($characters) - 1);
  47.         $randomString .= $characters[$randomIndex];
  48.     }
  49.     return $randomString;
  50. }
  51. ?>
复制代码
调用方式:https://你的域名/gdy.php?id=cctv1

借花献佛,再次感谢gaoma大神提供的代码及方案。

点评

第一个php文件正常,第二个php报错有问题  发表于 2025-5-3 15:48

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 337 天

[LV.8]自成一派

发表于 2025-5-2 23:34:15 来自手机 | 显示全部楼层

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 62 天

[LV.6]渐入佳境

发表于 2025-5-2 23:45:07 | 显示全部楼层
两个PHP文件,第一个命名为gdy,第二个呢?

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 18 天

[LV.4]初窥堂奥

发表于 2025-5-3 00:23:28 | 显示全部楼层
$randomIndex = random_int(0, strlen($characters) - 1);  这行报错,$pn = $ar[2] ?? '未知频道'; $extra_key = explode("extra_key=", $data['data']['hlsUrl'])[1] ?? '';这两行也报错

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 585 天

[LV.9]已臻大成

发表于 2025-5-3 05:51:33 | 显示全部楼层
谢谢楼主分享

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 183 天

[LV.7]炉火纯青

发表于 2025-5-3 07:41:27 | 显示全部楼层
谢谢楼主分享!

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 129 天

[LV.7]炉火纯青

发表于 2025-5-3 08:04:34 | 显示全部楼层
人生没有彩排,每天都是直播。

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 15 天

[LV.4]初窥堂奥

发表于 2025-5-3 08:36:17 | 显示全部楼层
这玩意还限制ip吧,国外的获取不了第一个php的内容

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 12 天

[LV.3]圆转纯熟

 楼主| 发表于 2025-5-3 09:30:14 | 显示全部楼层
xiaren2 发表于 2025-5-3 08:36
这玩意还限制ip吧,国外的获取不了第一个php的内容

没有限制的,我在此字符被系统屏蔽测试成功。

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 12 天

[LV.3]圆转纯熟

 楼主| 发表于 2025-5-3 09:31:10 | 显示全部楼层
0517 发表于 2025-5-2 23:45
两个PHP文件,第一个命名为gdy,第二个呢?

php名字随便起的,只有json文件名对应代码中的,如需要修改可以自己改一下。

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 12 天

[LV.3]圆转纯熟

 楼主| 发表于 2025-5-3 09:31:54 | 显示全部楼层
93met 发表于 2025-5-3 00:23
$randomIndex = random_int(0, strlen($characters) - 1);  这行报错,$pn = $ar[2] ?? '未知频道'; $extr ...

检擦你的运行环境,代码没问题,php7.3-8.0军测试成功。

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 476 天

[LV.9]已臻大成

发表于 2025-5-3 15:33:12 | 显示全部楼层
感谢楼主分享

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

本版积分规则

Archiver|手机版|小黑屋|IPTV论坛 | 管理员邮箱:a@8494.net

本站以兴趣爱好为宗旨,非经营性质,不以任何形式收取任何费用。IPTV论坛没有任何官方Q群,V群,T群,禁止留任何联系方式,请配合。

免责声明:本站上述内容来自网络,不得用于商业或非法用途,您必须在下载后24小时内,从设备中删除,否则后果自负。如内容侵犯您的版权、著作权,请联系我,第一时间处理。

GMT+8, 2025-5-11 10:46 , Processed in 0.117132 second(s), 19 queries .

IPTV论坛 创建于 2023年5月1日