76

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

Помогите дописать\переписать скрипт.
нужно чтобы он отображал статус радио и к-во слушателей. Все вроде бы работает, но кривовато, т.е. icecast сервер постоянно онлайн, но радио работает не всегда. А скрипт работает по принципу - есть конект, выдает инфу о слушателях итд. А если нет конекта - тогда выдает ошибку, типа радио не работает. Но, поскольку сервер всегда онлайн, скрипт показивает что радио работает, хотя трансляции нет. sad
Где тут и что можно исправить!?

<?php

$ip = "zloe.servemp3.com";
$port = "7000";
$ice2_station = "Rадио ";

$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
        $success=2;  //set if no connection



//edit html to fit your stations site, this display is for offline status
echo'<table>
     <tr>
        <td width="100%" colspan="2">
        <img border="0" src="images/offline.gif" width="22" height="22">
        <b><font face="Georgia" size="5" color="#FF0000">'.$ice2_station.' сейчас не работает</font></b></td>
      </tr>
</table>';
}

if($success!=2){ //if connection
 fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
 while(!feof($fp)) {
  $page .= fgets($fp, 1000);
 }
 fclose($fp); //close connection
 $page = ereg_replace(".*<pre>", "", $page); //extract data
 $page = ereg_replace("</pre>.*", ",", $page); //extract data



  $numbers = explode(",",$page); //bomb it and extract data
 $mount = $numbers[0];
 $connections = $numbers[1];
 $stream_n = $numbers[2];
 $listeners = $numbers[3];
 $desc = $numbers[4];
 $cur_song = $numbers[5];
 $str_url = $numbers[6];
 $client_info = $numbers[7];
 $test1 = $numbers[8];   //set vars that where empty and still dont know what
 $mount = $numbers[11];
 $connections = $numbers[12];
 $station =$numbers[13];
 $listeners = $numbers[14];
 $description = $numbers[15];
 $cur_song = $numbers[16];
 $www_url  = $numbers[17];

//edit html to fit your stations site, this display is for online status
echo'
<table width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr>
 <td width="100%"><b><font face="Arial" size="2">
        <tr>
        <td width="100%"><b><font face="Georgia" color="green" size="5">
        <img border="0" src="images/ice2_status/tunes.gif" width="22" height="18">
        '.$ice2_station.' работает! </font></b></td>
      </tr>
      <tr>
        <td width="100%"><b><font face="Georgia" color="green" size="5">
        <img border="0" src="images/ice2_status/tunes.gif" width="22" height="18">
        '.$listeners.' </font></b></td>
      </tr>
         </table>';
}

Как я понимаю скрипт берет инфу с файла http://zloe.servemp3.com:7000/status2.xsl и прасит его, заметил что при трансляции в файле присутствует параметр mount, т.е. /radio. а при отсутствии трансляции, этого параметра нет. Можно ль какнить переписать скрипт так, чтобы при отсутствии параметра он выдавал что радио не работает.

Примеры

1. радио НЕ работает

<pre>
MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL Global,Client:158157 Source: ,,0,, 
</pre>

2. радио работает

<pre>
MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL Global,Client:158159 Source: ,,0,, /radio,,,19,, - ,
</pre>

77

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

2 Siroga
Хотя бы так

<?php

$ip = "zloe.servemp3.com";
$port = "7000";
$ice2_station = "Rадио ";

$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
        $success=2;  //set if no connection



//edit html to fit your stations site, this display is for offline status
echo'<table>
     <tr>
        <td width="100%" colspan="2">
        <img border="0" src="images/offline.gif" width="22" height="22">
        <b><font face="Georgia" size="5" color="#FF0000">'.$ice2_station.' сейчас не работает</font></b></td>
      </tr>
</table>';
}

if($success!=2){ //if connection
 fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
 while(!feof($fp)) {
  $page .= fgets($fp, 1000);
 }
 fclose($fp); //close connection
 $page = ereg_replace(".*<pre>", "", $page); //extract data
 $page = ereg_replace("</pre>.*", ",", $page); //extract data



  $numbers = explode(",",$page); //bomb it and extract data
 $mount = $numbers[0];
 $connections = $numbers[1];
 $stream_n = $numbers[2];
 $listeners = $numbers[3];
 $desc = $numbers[4];
 $cur_song = $numbers[5];
 $str_url = $numbers[6];
 $client_info = $numbers[7];
 $test1 = $numbers[8];   //set vars that where empty and still dont know what
 $mount = $numbers[11];
 $connections = $numbers[12];
 $station =$numbers[13];
 $listeners = $numbers[14];
 $description = $numbers[15];
 $cur_song = $numbers[16];
 $www_url  = $numbers[17];
if (strlen($mount)<2) echo '<table width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr>
 <td width="100%"><b><font face="Arial" size="2">
        <tr>
        <td width="100%"><b><font face="Georgia" color="green" size="5">
        <img border="0" src="images/ice2_status/tunes.gif" width="22" height="18">
        '.$ice2_station.' Не работает! </font></b></td>
      </tr>
      </tr>
         </table>';
    
//edit html to fit your stations site, this display is for online status
    else echo '<table width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tr>
 <td width="100%"><b><font face="Arial" size="2">
        <tr>
        <td width="100%"><b><font face="Georgia" color="green" size="5">
        <img border="0" src="images/ice2_status/tunes.gif" width="22" height="18">
        '.$ice2_station.' работает! </font></b></td>
      </tr>
      <tr>
        <td width="100%"><b><font face="Georgia" color="green" size="5">
        <img border="0" src="images/ice2_status/tunes.gif" width="22" height="18">
        '.$listeners.' </font></b></td>
      </tr>
         </table>';
    }

?>
-------------------------------
R244390603111<- пиво лить сюда

78

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

Спасибо, заработало smile)

79

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

ЙЮЙ ЛНФМН ЯОЮПЯХРЭ БНР Я РЮЙНЦН ТЮИКЮ?
http://radio.nextrim.ru:8000/status2.xs … =anime.ogg
ДЕКН Б РНЛ ВРН ПЮДХНЯРЮМЖХИ ЛМНЦН, Ю ЩРНР ТЮИК ХЛЕММН РНИ ПЮДХНЯРЮМЖХХ Я ЙНРНПНИ УНВС БГЪРЭ ХМТС... ЯЙЮФХРЕ ОПНЯРН ЙЮЙ БШБЕЯРХ ЩРН Б html, ДЮКЭЬЕ Ъ ПЮГАЕПСЯЭ...

80

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

пишет Klef:

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

<?php
$xml[1] = simplexml_load_file("http://линко:порт/radio.xspf");
//$xml[2] = simplexml_load_file("http://линко:порт/potok2.xspf");
//по необходимости увеличиваем
$kp=1; //количество потоков
$i=1;
$vsego=0;
while ($i <= $kp) {
    $ano = $xml[$i]->trackList->track->annotation;
    $mass=explode("\n", $ano);
    $kol=substr($mass[4],19);
    $i=$i+1;
    $vsego=$vsego+$kol;
}    
echo "Слушают: " .$vsego;
?>

пишет Klef:

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

<?php
$xml[1] = simplexml_load_file("http://линко:порт/radio.xspf");
//$xml[2] = simplexml_load_file("http://линко:порт/potok2.xspf");
//по необходимости увеличиваем
$kp=1; //количество потоков
$i=1;
$vsego=0;
while ($i <= $kp) {
    $ano = $xml[$i]->trackList->track->annotation;
    $mass=explode("\n", $ano);
    $kol=substr($mass[4],19);
    $i=$i+1;
    $vsego=$vsego+$kol;
}    
echo "Слушают: " .$vsego;
?>

1. Прекрасный скрипт! Вопрос к автору - как сделать чтобы скрипт отображал пиковое количество слушателей? какие данные прописать в скрипт для этого? и откуда вы взяли эти данные?

2. Нельзя ли во втором варианте скрипта привести пример, как прописывать несколько потоков?

3. Ответ тем, у кого не заработал скрипт. Скрипт Работает только с icecast 2.3.2 и не ниже. Если я не прав, то поправьте.

Очень жду ответа!

81

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

код с каментами

<?php
    include "max.php";
    //обращению к файлу, где храниться зафиксированный максимум
    $xmlf[] = "http://adres:port/potok1.xspf";
    $xmlf[] = "http://adres:port/potok2.xspf";
    //прописываем потоки, сколько надо (пример "http://wasteland.spb.su:8080/radio.xspf")
    $i=0;
    //задаем первую позицию счетчика для цикла
    $kolpotok=sizeof($xmlf)-1;
    //определяем количество прописаных потоков по масиву (т.к. счет с нуля, то -1)
    $VIEWERS=0;
    //задаем нулевое значение счетчика слушателей
    while ($i <= $kolpotok) {
        $xml = simplexml_load_file($xmlf[$i]);
        //обращение к xspf файлу текущего потока
        $ano = $xml->trackList->track->annotation;
        //выбираем значение из <trackList><track><annotation>
        $mass=explode("\n", $ano);
        //разбиваем знаечение на масив (т.к. там много чего а нам надо тока строку "Current Listeners:")
        $kol=substr($mass[4],19);
        //строка "Current Listeners" есть 5 по счету (незабываем счет с нуля, т.к. это будет 4) и т.к. нам нужна тока цифорка, то начиная с 19 символа
        $i=$i+1;
        //шаг счетчика для цикла
        $VIEWERS=$VIEWERS+$kol;
        //прибавляем полученное количество слушателей по потоку к общему значению
    }    
    if ($VIEWERS>$maxobserve)
    //проверяем текущее значение с зафиксированным максимум, если больше то записываем новое
        {
            $txtout='<?php'."\r\n";
            $txtout=$txtout. '$maxobserve=' .$VIEWERS. ";\r\n";
            $txtout=$txtout."\r\n".'?>';
            //создаем переменную с текстом файла
            $fp = fopen ("путь к файлу/max.php", "w"); 
            //открываем на запись файл, путь должен быть полным, например для виндовс "C:/www/stat/max.php"
            fwrite($fp,$txtout); 
            //записываем файл
            fclose($fp);
            //не забываем закрыть его
            $maxobserve=$VIEWERS;
            //принимаем значение максимального на текущее значение
        }
    echo "listens: " . $VIEWERS . "<br>";    
    echo "max listens: " . $maxobserve . "<br>";
    //выводим полученные значения
?>

1. скрипт <censored> но работает.  пиковое добавил (давно использую), реализовано на доп файле "max.php" вида:

<?php
$ml=100;
?>

в нем храниться одна переменная, которая хранит пик :)
минус, в том, что если будет зафиксирован новое пиковое значение, только в том случае, если этот скрипт вызовут. Не проверял на ОЧЕНЬ большом обращении к скрипту (хоть он и вызывается из подписи на десятках форумов, но справляется)
Канешно можно так же при парсирование xmlf файла брать значение "Peak Listeners:" но, оно обнуляется  при перезапуске icecast'а. Также при наличии потоков более одного, сумма этих значений не будет истиной пиковой нагрузкой.

2.   в начале добавляем "$xmlf[] = "http://adres:port/potok3.xspf";" где прописываем потоки, текущий вариант сам посчитает их.

3. не проверял, сразу с 2.3.2 начал :)

-------------------------------
R244390603111<- пиво лить сюда

82

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

пишет Symbios:

ЙЮЙ ЛНФМН ЯОЮПЯХРЭ БНР Я РЮЙНЦН ТЮИКЮ?
http://radio.nextrim.ru:8000/status2.xs … =anime.ogg
ДЕКН Б РНЛ ВРН ПЮДХНЯРЮМЖХИ ЛМНЦН, Ю ЩРНР ТЮИК ХЛЕММН РНИ ПЮДХНЯРЮМЖХХ Я ЙНРНПНИ УНВС БГЪРЭ ХМТС... ЯЙЮФХРЕ ОПНЯРН ЙЮЙ БШБЕЯРХ ЩРН Б html, ДЮКЭЬЕ Ъ ПЮГАЕПСЯЭ...

<?php
$file_name='http://radio.nextrim.ru:8000/status2.xsl?mount=/anime.ogg';
$r=fopen($file_name,'r');
$text=fread($r,10000);
fclose($r);
$mass=explode(",", $text);
echo $mass [14] ."<br>";
?>

в "$text=fread($r,10000);" 10000 означает количество запрашиваемых байт, точное число (чтоб много лишенего не просил и нужное взял подбирать опытным путем.

-------------------------------
R244390603111<- пиво лить сюда

83

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

для всех, кто хочет суммировать количество слушателей по всем потокам по серверу

$file_name='http://ip:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,300);
fclose($r);
$mass=explode(",", $text);
echo $mass [9] ."<br>";

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

-------------------------------
R244390603111<- пиво лить сюда

84

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

Привет всем!
ВОт такой вопросец возник!
А как можно вот к примеру тот скрипт который выводит инфу о станции, доработать так, чтоб он выводил название песни и исполнителя в две строки?

85

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

пишет djluk:

Привет всем!
ВОт такой вопросец возник!
А как можно вот к примеру тот скрипт который выводит инфу о станции, доработать так, чтоб он выводил название песни и исполнителя в две строки?

разбивка по дефису, и надеяться, что не попадется трек с дефисом в названии smile

-------------------------------
R244390603111<- пиво лить сюда

86

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

пишет Klef:

разбивка по дефису, и надеяться, что не попадется трек с дефисом в названии smile

В смысле по дефису? как это?

87

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

в icecast передается строка вида "Artist - Track" (во всяком случае, где я видел)
так что разделить строку по знаку разделителя (в нашем случае дефис).

-------------------------------
R244390603111<- пиво лить сюда

88

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

пишет Klef:

в icecast передается строка вида "Artist - Track" (во всяком случае, где я видел)
так что разделить строку по знаку разделителя (в нашем случае дефис).

Нет ну это понятно. А вот как это сделать?

89

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

Народ скажите мне нужен код для вывода имени DJ пользуюсь icecast v2, и еще как в семе настроить DJ где это задавать?

90

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

Klef, а как сделать скрипт, чтобы была картинка, как у тебя вот: [imgl]http://wasteland.spb.su/radio/?big=1[/imgl] ?

Сайт и плейлист радио ZED-FM.

91

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

Здраствуй дорогой дружок. Сегодня я раскажу тебе сказку о кумулятиыных сведениях для создания графического информера, ака юзербара.

Предупреждение: данный пост содержит много кода, много текста, картинки и никакого смысла. Весь матеиал основан на использование php, icecast и sam broadcaster

Итак нам понадобяться:
- картинка заготовка
- прикольный шрифт в ttf формате
- веб сервер с php
- две руки со средней кривизной
- усидчивость


Сначало делаем картинку заготовку, на php моно делать всё и с нуля, но если руки под фотошоп заточены лучше, то проще и быстрей сделать заранее (либо поймать знакомого фотошопера и  заставить его)
http://wasteland.spb.su/informer/blank.png
в работе можно использовать и другие форматы, такие как gif, jpg, но png мне как то нравиться больше.

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

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);
imagettftext ($im, 6, 0, 20, 30, $color, "ft.ttf", "1");
imagettftext ($im, 14, 45, 20, 60, $color, "ft.ttf", "2");
imagettftext ($im, 14, 0, 20, 90, $color, "ft.ttf", "3");
imagettftext ($im, 14, 170, 45, 120, $color, "ft.ttf", "4");
imagepng ($im);
imagedestroy ($im);
?>

результат:
http://wasteland.spb.su/informer/step01.php
итак для тех кто не может открыть гугл коментарии
1. говорим браузеру, что он получает от нас
2. создаем изображение на основе нашего художества
3. присваиваем цвет (как видно в формате RGB)
4. 5. 6. 7. пишем текст, где первое значение: обрабатываемое изображние, второе: размер шрифта, далее: наклон, координата X, координата Y(начало отсчета в левом верхнем углу), цвет, шрифт (точнее путь к нему), текст
8. выдаем картинку браузеру.
9. разрушаем изображение (дабы не забивать память)

теперь берем под белы рученьки icecast и начинаем у него требовать информацию.

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current="track".$mass [16];

imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf",$current);
imagepng ($im);
imagedestroy ($im);
?>

http://wasteland.spb.su/informer/step02.php
кто читал данную тему раньше, сразу поймет, что мы запрашиваем строку статуса у icecast'a и зная, что где орабатываем нужные строки.

а теперь попробуем применить немного экспериментальной магии.

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current=$mass [16];
$cm=explode(" - ", $current);

imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf","Artist: ".$cm[1]);
imagettftext ($im, 6, 0, 15, 30, $color, "ft.ttf","Song: ".$cm[2]);

imagepng ($im);
imagedestroy ($im);
?>

http://wasteland.spb.su/informer/step03.php

но в этом есть одна большая опасность. если в название группы будет пробел, дефис, пробел, то результат может быть не тем.

переходим к следущему треку.
из самого icecat'а мы узнать что будет дальше не имеем возможности, т.к. он сам не знает, что поставить, но в случае если вы используете Sam Broadcast есть хитрый обходной маневр.

открываем сам, config, HTML output, и в General HTML output добавляем новую запись.
указываем источник шаблона и резальтирующий файл.

источник вида

<!--LOOP(queue,1)-->
<!--LOOP_HEADER-->
<!--LOOP_ROW-->
$queue.artist$
$queue.combine$
$queue.title$
<!--LOOP_FOOTER-->
<!--LOOP_END-->

результат же будет возращаться
типа

Jimi Hendrix
Jimi Hendrix - Pali Gap
Pali Gap

преобразуем код
соответсвенно не забывая указывать путь на файлы, там где лежат наши основные файлы (или в случае оазделения, использовать FTP доступ (сам и это может))

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current=$mass [16];
$cm=explode(" - ", $current);

$file_name='zago.php';
$r=fopen($file_name,'r');
$text=fread($r,filesize($file_name));
fclose($r);
$mas=explode("\r\n", $text);


imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf","Artist: ".$cm[1]);
imagettftext ($im, 6, 0, 15, 30, $color, "ft.ttf","Song: ".$cm[2]);
imagettftext ($im, 6, 0, 15, 40, $color, "ft.ttf","Next track: ".$mas[3]);
imagettftext ($im, 6, 0, 15, 50, $color, "ft.ttf","Next artist: ".$mas[2]);
imagettftext ($im, 6, 0, 15, 60, $color, "ft.ttf","Next song: ".$mas[4]);

imagepng ($im);
imagedestroy ($im);
?>

http://wasteland.spb.su/informer/step04.php

как вы поняли, мы добавили запрос к резултирующему файлу (он у нас зоветься zago.php) и разобрали его на части по символу "перевод строки" (\r\n) на unix хостингах будет "\n"

Добавляем "слушателей"

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current=$mass [16];
$listens=$mass [9];
$cm=explode(" - ", $current);

$file_name='zago.php';
$r=fopen($file_name,'r');
$text=fread($r,filesize($file_name));
fclose($r);
$mas=explode("\r\n", $text);


imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf","Artist: ".$cm[1]);
imagettftext ($im, 6, 0, 15, 30, $color, "ft.ttf","Song: ".$cm[2]);
imagettftext ($im, 6, 0, 15, 40, $color, "ft.ttf","Next artist: ".$mas[2]);
imagettftext ($im, 6, 0, 15, 50, $color, "ft.ttf","Next song: ".$mas[4]);
imagettftext ($im, 6, 0, 15, 60, $color, "ft.ttf","Listns: ".$listens);

imagepng ($im);
imagedestroy ($im);
?>

http://wasteland.spb.su/informer/step05.php
добавление в нашу, уже существующую конструкцию очень просто, в блоке разбирания строки состояния icecast'а добавляем присваивание переменной, где указываеться слушатели.

Максимальное количество.
Для этого нам нужно проявить смекалку и личную доблесть.
Можно канешно брать эту информацию из icecast'а, но в случае перезагрузки сервиса, оно обнулиться.
так что делаем замечательный финт ушами.
Создаем файл max.php

<?php
$ml=0;
?>

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

<?php 
header ("Content-type: image/png");
$im = ImageCreateFromPng("blank.png");
$color = imagecolorallocate ($im, 255, 255, 255);


$file_name='http://wasteland.spb.su:8080/status2.xsl';
$r=fopen($file_name,'r');
$text=fread($r,1000);
fclose($r);
$mass=explode(",", $text);
$current=$mass [16];
$listens=$mass [9];
$cm=explode(" - ", $current);

include "max.php";
if ($listens>$max)
        {
            $txtout='<?php'."\r\n";
            $txtout=$txtout. '$max=' .$listens. ";\r\n";
            $txtout=$txtout."\r\n".'?>';
            $fp = fopen ("max.php", "w"); 
            fwrite($fp,$txtout); 
            fclose($fp);
            $max=$listens;
        }

$file_name='zago.php';
$r=fopen($file_name,'r');
$text=fread($r,filesize($file_name));
fclose($r);
$mas=explode("\r\n", $text);


imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf","Artist: ".$cm[1]);
imagettftext ($im, 6, 0, 15, 30, $color, "ft.ttf","Song: ".$cm[2]);
imagettftext ($im, 6, 0, 15, 40, $color, "ft.ttf","Next artist: ".$mas[2]);
imagettftext ($im, 6, 0, 15, 50, $color, "ft.ttf","Next song: ".$mas[4]);
imagettftext ($im, 6, 0, 15, 60, $color, "ft.ttf","Listns: ".$listens);
imagettftext ($im, 6, 0, 15, 70, $color, "ft.ttf","Max listens: ".$max);

imagepng ($im);
imagedestroy ($im);
?>

http://wasteland.spb.su/informer/step06.php

но не збывайте, что если у вас данный информер не оторазилься, то число соответсвенно не провериться wink

Вот так за 6 шагов на римере мы научились делать странную фигню.
Я конечно оставил такие аспекты, как проблемы с кодировкой (iconv вам поможет), проверку на длину (а то вдруг за границу текст вылезет, центрирование (imagettfbbox очень полезная вещь).
но такого рода вопросы я вам оставляю на самостоятельное изучение.

[size=10]Если вам не понятны какиелибо команды на php, то гугл вам всегда поможет.
Если же и в этом случае не поняли, то видимо вам рано изучать php.[/size]


http://wasteland.spb.su/informer/

-------------------------------
R244390603111<- пиво лить сюда

92

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

Дякую, шановний. Буду майструвати smile И от себя добавлю ссылочку на переведённую документацию по radiotoolbox и на сам сайт radiotoolbox.
Будут еще вопросы. точно...

Сайт и плейлист радио ZED-FM.

93

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

Ну.... Что ж сказать... не сразу конечно язык автора мне поддался, но всётаки  по песцинке и сделал:  http://194.24.190.24/11.php. Тока иногда бывает в исполнителя влазит  и трек: и альбом и еще что-то  smile но спасибо тебе БОООООООЛЬШОЕ, Klef.
Тык вот что хотел... Как написать код, чтобы еще вытянуть данные из Station name и station description ?

Сайт и плейлист радио ZED-FM.

94

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

это тебе нужно парсить уже не status2.xml а XSPF потока (выше в теме было)
либо передавать от сама

-------------------------------
R244390603111<- пиво лить сюда

95

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

Klef респект за проделанную работу при создании мануальчика, такие фишки нужно в отдельные темы выносить, а то тут затеряюцца и фиг кто их найдет, а жалко...

96

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

2 AlexIT
могу продублировать и подополнять троху smile

-------------------------------
R244390603111<- пиво лить сюда

97

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

Да, и скажи за одно, как информер на форум всунуть, если там запрещени изображения.РНР ? Может каким кодом, чтобы разпознавалось, как изображение?

Сайт и плейлист радио ZED-FM.

98

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

пишет Ruskat:

Да, и скажи за одно, как информер на форум всунуть, если там запрещени изображения.РНР ? Может каким кодом, чтобы разпознавалось, как изображение?

был один такой как то.
есть вариант злобного обмана (но не везде)
делаем директорию, в неё наш скрипт с именем index.php
и линк кажем на http://www/dir

вот пример
http://wasteland.spb.su/radio

-------------------------------
R244390603111<- пиво лить сюда

99

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

Klef, А в моем случае нужны только реальные расширения изображений. Просто так не проходит. Что тогда?

Сайт и плейлист радио ZED-FM.

100

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

можно попробовать обмануть типом:
http://www/dir/?img=1.jpg

но помогает редко smile

-------------------------------
R244390603111<- пиво лить сюда