2020-04-18 13:25:13 +00:00
|
|
|
|
<?php
|
|
|
|
|
|
2020-08-28 16:38:20 +00:00
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
|
ini_set('display_startup_errors', 1);
|
|
|
|
|
error_reporting(E_ALL);
|
2020-04-18 13:25:13 +00:00
|
|
|
|
|
2020-04-20 04:02:34 +00:00
|
|
|
|
/**
|
|
|
|
|
* Возвращает количество каналов в плейлисте
|
|
|
|
|
*
|
|
|
|
|
* @param string $pls_url URL плейлиста
|
|
|
|
|
* @return int
|
|
|
|
|
*/
|
2020-04-18 13:25:13 +00:00
|
|
|
|
function getChannelCount($pls_url) {
|
|
|
|
|
$content = file_get_contents($pls_url);
|
|
|
|
|
$matches = [];
|
|
|
|
|
preg_match_all('[EXTINF]', $content, $matches);
|
|
|
|
|
return count($matches[0]);
|
|
|
|
|
}
|
|
|
|
|
|
2020-04-20 04:02:34 +00:00
|
|
|
|
// Шаблон короткой ссылки на плейлист
|
2020-04-18 13:25:13 +00:00
|
|
|
|
// $my_url = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'?s=';
|
2020-08-28 16:38:20 +00:00
|
|
|
|
$my_url = $_SERVER['SERVER_NAME'].'/iptv?s=';
|
2020-04-18 13:25:13 +00:00
|
|
|
|
|
2020-04-20 04:02:34 +00:00
|
|
|
|
// Чтение списка плейлистов из ini-файла
|
|
|
|
|
$data = parse_ini_file('playlists.ini', true);
|
2020-04-18 13:25:13 +00:00
|
|
|
|
|
2020-08-28 16:38:20 +00:00
|
|
|
|
if (!empty($_GET['s'])) {
|
|
|
|
|
if (!empty($data[$_GET['s']]['redirect'])) {
|
|
|
|
|
header('Location: '.$data[$data[$_GET['s']]['redirect']]['pls']);
|
|
|
|
|
} elseif (!empty($data[$_GET['s']]['pls'])) {
|
|
|
|
|
header('Location: '.$data[$_GET['s']]['pls']);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
?>
|
2020-04-18 13:25:13 +00:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="ru">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
<title>IPTV Playlists</title>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<style>
|
|
|
|
|
.myurl {
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
line-height: 2em;
|
|
|
|
|
display: block;
|
|
|
|
|
}
|
|
|
|
|
.center {
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
.pointer {
|
|
|
|
|
cursor:pointer;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
2020-04-18 13:25:13 +00:00
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>Список самообновляемых плейлистов для IPTV</h1>
|
|
|
|
|
<p>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
Дата обновления списка: <strong>
|
2020-04-30 13:49:08 +00:00
|
|
|
|
<?=date('d-m-Y h:i:s', filemtime('playlists.ini'))?> МСК<br>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
<a href="https://github.com/anthonyaxenov/iptv">github.com/anthonyaxenov/iptv</a>
|
|
|
|
|
</strong>
|
|
|
|
|
<p>
|
|
|
|
|
Поддержкой этих плейлистов занимаются сервисы и ресурсы, указанные как источник (если таковые имеются).<br>
|
|
|
|
|
Эти плейлисты собраны здесь вручную и бесплатны.
|
2020-04-18 13:25:13 +00:00
|
|
|
|
</p>
|
|
|
|
|
<p>Чтобы подключить плейлист, нужно в настройках IPTV-плеера добавить ссылку в следующем формате:</p>
|
|
|
|
|
<pre><?=$my_url?><strong>ID</strong></pre>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
<p>где <strong>ID</strong> - один из указанных ниже идентификаторов.</p>
|
2020-04-18 13:25:13 +00:00
|
|
|
|
<table width="100%" border="1" cellpadding="1">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<td class="center">ID</td>
|
2020-04-30 13:46:38 +00:00
|
|
|
|
<td>Информация о плейлисте</td>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<td class="center">Каналов</td>
|
2020-04-30 13:46:38 +00:00
|
|
|
|
<td title="Нажмите на ссылку, чтобы скопировать адрес">Ссылка на плейлист</td>
|
2020-04-18 13:25:13 +00:00
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
<?php foreach ($data as $id => $element) {
|
|
|
|
|
if (empty($element['pls'])) {
|
|
|
|
|
continue;
|
|
|
|
|
} ?>
|
|
|
|
|
<tr>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<td class="center">
|
2020-04-20 04:02:34 +00:00
|
|
|
|
<strong><?=$id?></strong>
|
|
|
|
|
</td>
|
|
|
|
|
<td>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<strong><?=$element['name'] ?: "Плейлист #".$id?></strong>
|
2020-04-30 13:46:38 +00:00
|
|
|
|
<?php if (!empty($element['src'])) { ?>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<br><a href="<?=$element['src']?>" target="_blank" rel="noopener nofollow">Источник</a>
|
2020-04-30 13:46:38 +00:00
|
|
|
|
<?php } ?>
|
|
|
|
|
<?php if (!empty($element['desc'])) { ?>
|
|
|
|
|
<br><?=$element['desc']?>
|
|
|
|
|
<?php } ?>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
</td>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<td class="center"><?=getChannelCount($element['pls'])?></td>
|
|
|
|
|
<td width="250">
|
|
|
|
|
<span onclick="prompt('Скопируйте адрес плейлиста', '<?=$my_url?><?=$id?>')"
|
|
|
|
|
title="Нажмите, чтобы скопировать адрес"
|
|
|
|
|
class="pointer myurl">
|
|
|
|
|
<?=$my_url?><?=$id?>
|
|
|
|
|
</span>
|
|
|
|
|
<span>
|
|
|
|
|
Прямая ссылка: <a href="<?=$element['pls']?>">M3U</a>
|
|
|
|
|
</span>
|
2020-04-20 04:02:34 +00:00
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
2020-04-18 13:25:13 +00:00
|
|
|
|
<?php } ?>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2020-08-28 16:38:20 +00:00
|
|
|
|
<?php
|
2020-04-18 13:25:13 +00:00
|
|
|
|
}
|