376

Re: Скрипты для Icecast

Здраствуйте еше раз, у меня тут возникла еше одна проблема
я вещаю через этот скрипт
<?php
$file_name='http://radio.telesweet.net:9000/status2.xsl?mount=/live';
$r=fopen($file_name,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
echo "текущая песня: ".$mass [16] ."<br>";
echo "количество слушателей: ".$mass [14] ."<br>";
?>

так от когда вещает английские песни, с английским названиям то все нормально отображается, а когда русские то и в айскасте и на сайте через этот скрипт показывается старая песня которая играла до этого на англ., а новой на русском что сечас играет не отображает вообще.
что это может быть за проблема, кто знает?
Спасибо.

377

Re: Скрипты для Icecast

проблема в кодировке, в icecast-е поставте <charset>cp1251</charset> на ваш маунт (если теги песен прописаны в кодировке 1251)

378

Re: Скрипты для Icecast

пишет tarasian666:

проблема в кодировке, в icecast-е поставте <charset>cp1251</charset> на ваш маунт (если теги песен прописаны в кодировке 1251)

не ужели кодировка может так повлиять на вывод песни? я думал что из за кодировки будут только кроказябры а у него получается что песня вообще не выводится

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

379

Re: Скрипты для Icecast

еще проблема может быть в кодировке базы если вещается SAM-ом

380

Re: Скрипты для Icecast

да вещания идет сэмом, как можно тогда это исправить?

381

Re: Скрипты для Icecast

установить кодировку в базе latin_swedish_ci
но прийдется все ровно наново ее "заполнять"

382

Re: Скрипты для Icecast

Тыкните пальцем хоть на 1 внятный скрипт который выводит только  общее количество  слушателей с нескольких маунтов.

Отредактировано MonoLog (17-12-2010 10:38:47)

383

Re: Скрипты для Icecast

Скрипты для Icecast

384

Re: Скрипты для Icecast

[size=24]http://radiotalk.ru/viewtopic.php?id=2607[/size]

Отредактировано mxneo (18-12-2010 20:57:58)

385

Re: Скрипты для Icecast

Перечитал всю тему и так не понял, как сделать что бы не считало статистику с маунта который недоступен и не выводило ошибку о его недоступности.
Есть вот такой скрипт у меня:

<?PHP
$data = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm256');
$data2 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/live');
$data3 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm');
$data4 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/e-fm64');
$data5 = file_get_contents('http://сайт.ру:8000/status.xsl?mount=/electromaniacs');
$data6 = file_get_contents('http://сайт.ру:9000/status.xsl?mount=/RadioElectroManiacs');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
//========Маунт-1============//
$data = iconv("utf-8", "cp1251", $data);
$Current_listeners = antara($data, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners = antara($data, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");;
//========Маунт-2============//
$Current_listeners2 = antara($data2, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners2 = antara($data2, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-3============//
$Current_listeners3 = antara($data3, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners3 = antara($data3, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-4============//
$Current_listeners4 = antara($data4, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners4 = antara($data4, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-5============//
$Current_listeners5 = antara($data5, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners5 = antara($data5, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//========Маунт-6============//
$Current_listeners6 = antara($data6, "Current Listeners:</td>\n<td class=\"streamdata\">","</td>");
$Peak_listeners6 = antara($data6, "Peak Listeners:</td>\n<td class=\"streamdata\">","</td>");
//======Общий подсчёт слушателей=======//
$Curr_listens=$Current_listeners+$Current_listeners2+$Current_listeners3+$Current_listeners4+$Current_listeners5+$Current_listeners6;
$Peak_listens=$Peak_listeners2+$Peak_listeners3+$Peak_listeners4;

$staylst=$Curr_listens+1;
echo 'Сейчас слушает: '.$Curr_listens.' Максимум слушало: '.$Peak_listens.'
';
?>

Заранее благодарен

386

Re: Скрипты для Icecast

как исправить скрипт что бы в нем не обрезалось название песни если там есть запятая? вот например в этом скрипте
<?php

function get_title ($mount){
$r=fopen($mount,'r');
$text=fread($r,2000);
fclose($r);
$mass=explode(",", $text);
return $mass [16];
}
$mount1 = "ссылка на status2xsl первого маунта";
$mount2 = "--//-- второго --//--";
$mount3 = "--//-- третьего --//--";

if(get_title($mount1) !='')
{
echo get_title($mount1);
}
elseif(get_title($mount2) !='')
{
echo get_title($mount2);
}
else
{
echo get_title($mount3);
}
?>

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

387

Re: Скрипты для Icecast

В общем уважаемые, помогите так сказать, перелопатил весь форум, но так и не добился нужного результата: А именно того, как вывести аватарку ведущего с помощью пхп скрипта. Покопавшись тут Я понял, что не фига не получается
Взяв кусок этого скрипта:

if($description == "тут ни")
{
echo "<img src='адрес картинки'>";
}

Прилепил его сюда:

<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != ''){
echo "Описание: $description ";}
else echo "Нет потока";
?>

В итоге получилось нечто:

<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description == "тут ник"){
echo "<img src='адрес картинки'>";
} 
= antara ($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != ''){
echo "Описание: $description ";}
else echo "Нет потока";
?>

В итоге не фига не работает, мож кто подскажет, как заставить эту беду работать.

Отредактировано Pioner (21-01-2011 02:31:26)

388

Re: Скрипты для Icecast

у меня вот так работает: создал файл dj.php и запихал туда этот код
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');
/*
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}*/
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
?>
а вот код который запихал в test.php
<?php
if($description == "ник который в сэме написал")
{
echo "<img src='http://картинка'> <b> имя</b>";
}
else
if($description == "Default description")
{
echo "<img src='http://картинка нонстопа'>";
}
else echo "Нет потока";
?>
потом в нужном мне месте вставил include_once "dj.php";

Отредактировано Sergei (21-01-2011 04:45:18)

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

389

Re: Скрипты для Icecast

пишет Sergei:

у меня вот так работает: создал файл dj.php и запихал туда этот код
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');
/*
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}*/
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
?>
а вот код который запихал в test.php
<?php
if($description == "ник который в сэме написал")
{
echo "<img src='http://картинка'> <b> имя</b>";
}
else
if($description == "Default description")
{
echo "<img src='http://картинка нонстопа'>";
}
else echo "Нет потока";
?>
потом в нужном мне месте вставил include_once "dj.php";

Ну у тебя то может и работает, но у меня в файле dj php выбивает Fatal error: Call to undefined function antara() in /home/site.ru/dj.php on line 12
Не пойму где ошибка)

390

Re: Скрипты для Icecast

он не знает или не понимает функцию antara

391

Re: Скрипты для Icecast

Спасибо, вот перелопатил форум, помню где-то видел этот рабочий скрипт, но не помню, где может кто подскажет? А то старчески найти не могу)

392

Re: Скрипты для Icecast

у Сергея функция antara задекларирована раньше, вот потому она и закоментирована, раскоментируйте и заработает

393

Re: Скрипты для Icecast

пишет metra52:

он не знает или не понимает функцию antara

я не только не знаю эту функцию но И не понимаю))) я нахожу скрипты а потом пытаюсь переделать их под себя методом тыка

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

394

Re: Скрипты для Icecast

сделал так и все робит)

<?php
$fl = file_get_contents('http://188.40.124.23:8254/?mount=/ices');
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
switch ($_GET[tip]) {
    case "title":
        echo $stream;
        break;
    case "list":
        echo "Слушает - ".$listeners;
        break;
    case "desk":
        echo $description;
        break;
    case "song":
        echo $song;
        break;
    case "max":
        echo "Слушало максимум - ".$max;
        break;
    case "all":
        echo "В эфире - ".$stream."<br>Слушает - ".$listeners."<br>Слушало максимум - ".$max."<br>Играет - ".$song;
        break;
}
?>

собственно сдесь сделан отдельный вывод разных данных а так же их общий вывод.
-для вывода трека используем такую схему http://сайт/название скрипта?tip=song   
-для вывода описания http://сайт/название скрипта?tip=desk
-для вывода слушателей  http://сайт/название скрипта?tip=list
-для вывода названия http://сайт/название скрипта?tip=title
-для вывода максимального количества слушателей http://сайт/название скрипта?tip=max
-и для вывода всего вместе http://сайт/название скрипта?tip=all

Отредактировано metra52 (21-01-2011 21:01:58)

395

Re: Скрипты для Icecast

пишет metra52:

сделал так и все робит)

<?php
$fl = file_get_contents('http://188.40.124.23:8254/?mount=/ices');
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
switch ($_GET[tip]) {
    case "title":
        echo $stream;
        break;
    case "list":
        echo "Слушает - ".$listeners;
        break;
    case "desk":
        echo $description;
        break;
    case "song":
        echo $song;
        break;
    case "max":
        echo "Слушало максимум - ".$max;
        break;
    case "all":
        echo "В эфире - ".$stream."<br>Слушает - ".$listeners."<br>Слушало максимум - ".$max."<br>Играет - ".$song;
        break;
}
?>

собственно сдесь сделан отдельный вывод разных данных а так же их общий вывод.
-для вывода трека используем такую схему http://сайт/название скрипта?tip=song   
-для вывода описания http://сайт/название скрипта?tip=desk
-для вывода слушателей  http://сайт/название скрипта?tip=list
-для вывода названия http://сайт/название скрипта?tip=title
-для вывода максимального количества слушателей http://сайт/название скрипта?tip=max
-и для вывода всего вместе http://сайт/название скрипта?tip=all

Прям спаситель, спасибо большое пашет как часы, тока вопрос такой: Тут маунт ацес прописан pначит данные берутся с него когда в эфире некого нет, а как сделать чтоб брались с канала ведущих? Ибо каждый раз менять ссылку не катит, может есть скрипт который проверяет доступность канала? Что то типа: Если канал лайв не доступен то показывает из нон стопа Если канал лайв работает то соотвественно с него..Буду ооочень благодарен

Отредактировано Pioner (21-01-2011 22:51:42)

396

Re: Скрипты для Icecast

перед switch ставим
if ($stream == ""){ $fl = file_get_contents('http://188.40.124.23:8254/?mount=/live');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$max = antara($fl, "<td>Peak Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
}

но можно и усовершенствовать

397

Re: Скрипты для Icecast

В общем поставил на сайт скрипт Сергея а именно:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
if ($stream == ""){ $fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
И взяв часть скрипта Тараса
Всунул его (обозначил красным) на отрез отказался работать Нужно чтоб картинку с нон стопа выводил если лайв потока нет, а если есть то выводил картинку с потока лайв
вопрос такой: Как его заставить пахать? Чтоб и картинку выводил и работал..С меня огромная благодарочка)

Отредактировано Pioner (21-01-2011 23:13:46)

398

Re: Скрипты для Icecast

пишет Pioner:

В общем поставил на сайт скрипт Сергея а именно:
<?php
$fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');

function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
if ($stream == ""){ $fl = file_get_contents('http://site.ru:port/status.xsl?mount=/maunt');');
$stream = antara($fl,"<td>Stream Title:</td>\n<td class=\"streamdata\">","</td>");

$description = antara($fl, "<td>Stream Description:</td>\n<td class=\"streamdata\">", "</td>");

$listeners = antara($fl, "<td>Current Listeners:</td>\n<td class=\"streamdata\">", "</td>");

$song = antara($fl, "<td>Current Song:</td>\n<td class=\"streamdata\">", "</td>");
if($stream != '')
include_once "test.php";
else echo "Нет потока";
И взяв часть скрипта Тараса
Всунул его (обозначил красным) на отрез отказался работать Нужно чтоб картинку с нон стопа выводил если лайв потока нет, а если есть то выводил картинку с потока лайв
вопрос такой: Как его заставить пахать? Чтоб и картинку выводил и работал..С меня огромная благодарочка)

возьми мой скрипт и там где
include_once "test.php";
else echo "Нет потока";
вместо "нет потока" пропиши картинку и получится так
include_once "test.php";
else echo "<img src='http://картинка нонстопа'>";
а в скрипте что я вначале выложил я ошибся когда в test.php подписал картинка с нонстопа. там должна быть картинка второго диджея

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

399

Re: Скрипты для Icecast

только маунт прописывай основной (через который вещаеш) а когда основной маунт будет отключен то должно выводиться что нет потока а так как для нонстопа хватит и одной картинки то просто достаточно заменить надпись на картинку! но есть только одна проблема... если вдруг у тебя по какой то причине и нанстоп не будет работать то картинка всё равно будет показываться

И да поможет мне F1,
И да сохранит меня F6,
Во имя Ctr'а, Alt'a и святого Delit'а.
Enter...

400

Re: Скрипты для Icecast

пишет Sergei:

только маунт прописывай основной (через который вещаеш) а когда основной маунт будет отключен то должно выводиться что нет потока а так как для нонстопа хватит и одной картинки то просто достаточно заменить надпись на картинку! но есть только одна проблема... если вдруг у тебя по какой то причине и нанстоп не будет работать то картинка всё равно будет показываться

Дело то вот в чём прописываю основной маунт, пишет нет потока, на нон стопе же маунт все пашет и картинка и все) Поетому и нужен скрипт который выше)