找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 4860|回复: 21

应邀分享tvsou节目表xmltv格式的php代码

[复制链接]
大家根据自己需要扩充$cid数据

<?php
if(date_default_timezone_get() != "Asia/Shanghai") date_default_timezone_set("Asia/Shanghai");
$fp="epg_tvs.xml";//压缩版本的扩展名后加.gz
$id0=100000;//起始节目编号

$cid=array(
array('42688016','湖南都市'),
array('34d6b6de','湖南经视'),
    );

function compress_html($string) {
$string = str_replace("\r", '', $string); //清除换行符
$string = str_replace("\n", '', $string); //清除换行符
$string = str_replace("\t", '', $string); //清除制表符
return $string;
}

$dt1=date('Ymd');
$dt2=date('Ymd',time()+24*3600);
$w1=date("w");
if ($w1<'1') {$w1=7;}
$w2=$w1+1;
$url0="https://www.tvsou.com/epg/";
$chn="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE tv SYSTEM \"http://api.torrent-tv.ru/xmltv.dtd\">\n<tv generator-info-name=\"tvsou\" generator-info-url=\"www.tvsou.com/epg\">\n";

$nid=sizeof($cid);

for ($id = 1; $id <= $nid; $id++){
$t0=array();
$t1=array();
$nm=array();

$url=$url0.$cid[$id-1][0].'/w'.$w1;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$re = curl_exec($ch);
curl_close($ch);
$re=compress_html($re);
preg_match('|<table class="layui-table c_table"(.*?)layui-tab-item|i',$re,$u);
preg_match_all('|<tr>([\s\S]+?)<\/tr>|', trim($u[1]), $u);
$u=$u[1];
$num=sizeof($u);
for ($i = 0; $i < $num; $i++) {
    preg_match_all('|_blank\'>(.*?)<\/a>|',$u[$i],$tr);
    $t0[]=$dt1.str_replace(':','',$tr[1][0]).'00 +0800';
    $nm[]=$tr[1][1];
                }
$url=$url0.$cid[$id-1][0].'/w'.$w2;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$re = curl_exec($ch);
curl_close($ch);
$re=compress_html($re);
preg_match('|<table class="layui-table c_table"(.*?)layui-tab-item|i',$re,$u);
preg_match_all('|<tr>([\s\S]+?)<\/tr>|', trim($u[1]), $u);
$u=$u[1];
$num=sizeof($u);
for ($i = 0; $i < $num; $i++) {
    preg_match_all('|_blank\'>(.*?)<\/a>|',$u[$i],$tr);
    $t0[]=$dt2.str_replace(':','',$tr[1][0]).'00 +0800';
    $nm[]=$tr[1][1];
                }               

$num=sizeof($t0);
for ($i = 1; $i < $num; $i++) {$t1[]=$t0[$i];}
$t1[]=$dt2.'235959 +0800';
$idd=$id0+$id;
$chn.="<channel id=\"".$idd."\"><display-name lang=\"zh\">".$cid[$id-1][1]."</display-name></channel>\n";
for ($i = 0; $i < $num; $i++) {
$chn.="<programme start=\"".$t0[$i]."\" stop=\"".$t1[$i]."\" channel=\"".$idd."\">\n<title lang=\"zh\">".$nm[$i]."</title>\n<desc lang=\"zh\"> </desc>\n</programme>\n";}


}
$chn.="</tv>\n";

//写入文件。这里一次性写入,可以自己分次写入操作
file_put_contents($fp, $chn);

//创建压缩版本
$fn = gzopen ($fp.'.gz', 'w9');
gzwrite($fn, file_get_contents($fp));
gzclose($fn);

?>


评分

参与人数 3恩山币 +3 收起 理由
ren63*** + 1 感谢你的分享,无论怎样,你都是最无私的人!
kongju*** + 1 生活不易,相遇也不易,既然这样,让我们成为朋友一起面朝大海、花开花落……
山凝*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!

查看全部评分

收藏备用,感谢大佬分享。
回复

使用道具 举报

这个怎么用??
回复

使用道具 举报

收藏备用,明天测试
回复

使用道具 举报

谢谢大佬,膜拜
回复

使用道具 举报

本帖最后由 kongjun95848 于 2020-8-27 19:03 编辑

太好了,楼主懂得语言太多了,好生羡慕。咱们都不会写,能不能再放出了TVMAO的代码,他的节目最全了,辛苦了大佬。
回复

使用道具 举报

测试成功,非常感谢!!!
回复

使用道具 举报

山凝黛迪 发表于 2020-8-27 19:50
测试成功,非常感谢!!!

我这获取不到节目表是什么情况tvsouepg.php?id=湖南都市
回复

使用道具 举报

fxgsfxgs 发表于 2020-8-27 21:10
我这获取不到节目表是什么情况tvsouepg.php?id=湖南都市

这个适用pp等壳子
回复

使用道具 举报


浏览器获取不到epg信息
回复

使用道具 举报

 楼主| | 显示全部楼层
fxgsfxgs 发表于 2020-8-27 21:10
我这获取不到节目表是什么情况tvsouepg.php?id=湖南都市

不是这样用的
回复

使用道具 举报


怎么用的?
回复

使用道具 举报

 楼主| | 显示全部楼层
fxgsfxgs 发表于 2020-8-27 22:07
怎么用的?

定期执行这个脚本 会在根目录生成epg_tvs.xml文件 然后浏览xml文件看结果
回复

使用道具 举报

生成的目录可以指定吗?最后是压缩了吗?
回复

使用道具 举报

tvsou没湖南都市的epg数据
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-21 14:51

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表