|
- <?php
- error_reporting(0);
- header('Content-Type: text/json;charset=UTF-8',true,200);
- $title = 'BBC World Service';
- for($i=0;$i<7;$i++){
- $dates[] = date("Y/m/d",strtotime("+".$i." day"));
- }
- for($i=0;$i<count($dates);$i++){
- $result[] = getepg($dates[$i]);
- }
- for($i=0;$i<count($result);$i++){
- $starttime[] = json_decode(explode("|",$result[$i])[0]);
- $endtime[] = json_decode(explode("|",$result[$i])[1]);
- $contents[] = json_decode(explode("|",$result[$i])[2]);
- }
- $starttime = array_merge((array)$starttime[0],(array)$starttime[1],(array)$starttime[2],(array)$starttime[3],(array)$starttime[4],(array)$starttime[5],(array)$starttime[6]);
- $endtime = array_merge((array)$endtime[0],(array)$endtime[1],(array)$endtime[2],(array)$endtime[3],(array)$endtime[4],(array)$endtime[5],(array)$endtime[6]);
- $contents = array_merge((array)$contents[0],(array)$contents[1],(array)$contents[2],(array)$contents[3],(array)$contents[4],(array)$contents[5],(array)$contents[6]);
- for($i=0;$i<count($starttime);$i++){
- $re.='
- <programme channel="'.$title.'" start="'.$starttime[$i].' +0000" stop="'.$endtime[$i].' +0000">
- <title lang="zh">'.$contents[$i].'</title>
- </programme>';
- }
- $re = '<channel id="'.$title.'">
- <display-name lang="zh">'.$title.'</display-name>
- </channel>
- '.trim($re);
- print_r($re);
- function getepg($date){
- $url = "https://www.bbc.co.uk/schedules/p00fzl9p/".$date."?utcoffset=%2B08%3A00";
- $header = array(
- "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0",
- "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
- "Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
- "Accept-Encoding: gzip, deflate, br",
- "Connection: keep-alive",
- "Referer: https://www.bbc.co.uk/schedules/p00fzl9p",
- );
- $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);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
- curl_setopt($ch, CURLOPT_ENCODING,'gzip, deflate, br');
- $result = curl_exec($ch);
- curl_close($ch);
- $result = str_replace('@','','{"@context":"'.explode('</script>',explode('{"@context":"',$result)[1])[0]);
- $result = json_decode($result)->graph;
- for($i=0;$i<count($result);$i++){
- $starttime[] = str_replace(['-','T',':'],'',explode('+',$result[$i]->publication->startDate)[0]);
- $endtime[] = str_replace(['-','T',':'],'',explode('+',$result[$i]->publication->endDate)[0]);
- $contents[] = $result[$i]->partOfSeries->name;
- }
- return json_encode($starttime)."|".json_encode($endtime)."|".json_encode($contents);
- }
- ?>
复制代码 |
|