|
<?php
define('BASE_URL', 'https://api.cntv.cn/epg/getEpgInfoByChannelNew?c=');
define('SERVICE_ID', '&serviceId=tvcctv&d=');
define('TARGET_FILE', __DIR__ . '/cctv.xml');
define('CHANNELS', [
'cctv1', 'cctv2', 'cctv3', 'cctv4', 'cctv5', 'cctv6',
'cctv7', 'cctv8', 'cctvjilu', 'cctv10', 'cctv11', 'cctv12',
'cctv13', 'cctvchild', 'cctv15', 'cctv16', 'cctv17', 'cctvamerica',
'cctveurope', 'cctv5plus',
]);
$date_range = array();
for ($i = -1; $i < 3; $i++) {
$date_range[] = date('Ymd', strtotime("+$i days"));
}
$mh = curl_multi_init();
$curl_handles = array();
// Preparing HTTP requests
foreach (CHANNELS as $channel) {
foreach ($date_range as $date) {
$url = BASE_URL . $channel . SERVICE_ID . $date;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$curl_handles[] = $ch;
}
}
$running = null;
// Executing HTTP requests
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running);
$results = [];
// Processing HTTP responses
foreach ($curl_handles as $i => $ch) {
$results[] = json_decode(curl_multi_getcontent($ch), true);
curl_multi_remove_handle($mh, $ch);
}
curl_multi_close($mh);
$tv = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><tv/>');
foreach ($results as $result) {
foreach ($result['data'] as $items) {
$channel = $tv->addChild('channel');
$channel->addAttribute('id', $items['channelName']);
$channel->addChild('display-name', $items['channelName']);
foreach ($items['list'] as $program) {
$program_element = $tv->addChild('programme');
$program_element->addAttribute('start', date('YmdHis O', $program['startTime']));
$program_element->addAttribute('stop', date('YmdHis O', $program['endTime']));
$program_element->addAttribute('channel', $items['channelName']);
$program_element->addChild('title', $program['title']);
}
}
}
// Save XML file
if (!file_exists(TARGET_FILE)) {
touch(TARGET_FILE);
}
$tv->asXML(TARGET_FILE);
echo "XML TV guide has been saved to " . TARGET_FILE . PHP_EOL;
?>
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|
|