MainRadiotalkCustom
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Грфическая информация о станции (icecast2+php)

 

6245
Тарас @tarasian666
ну слеш обозначает кореневую директорию, может в том проблема

888
Falcon @Falcon
Все! Решил я этот вопрос :)
.htaccess в корень public_html
И там redirect /userbar/userbar1.png /userbar/index.php

Отредактировано Falcon - 14.05.2010
6245
Тарас @tarasian666
Falcon пишет:

Попробовал полные пути с ********** там далее.. Ничего.

так тоже ничего не получалось, получалось с полным путем начиная от кореневой папки веб сервера

122
intervision @intervision
зачем так сложно????

надо играться с mod_rewrite в .htaccess

127
Глеб @Psyhodelic
а у меня такой вопросик. Вот на станции играют треки с русскими названиями, а на данной картинке с информации иероглифы. Как это можно исправить?

122
intervision @intervision
шрифт, используемый скриптом должен поддерживать кириллицу это во первых, скрипт должен коныертировать названия или в ютф-8 или в вин-1251 тут зависит от исходной кодировки треков...

PS прикольные бабочки ))))
PSS шрифт чтоли пожирнее надо а то слабо читается )))

Отредактировано intervision - 16.05.2010
127
Глеб @Psyhodelic
intervision пишет:

шрифт, используемый скриптом должен поддерживать кириллицу это во первых, скрипт должен коныертировать названия или в ютф-8 или в вин-1251 тут зависит от исходной кодировки треков...

PS прикольные бабочки ))))
PSS шрифт чтоли пожирнее надо а то слабо читается )))

За бабочек спасибо :D У меня шрифт поддерживает кириллицу, но как заставить скрипт кодирывать надписи?
Переделывал данный скрипт под SHOUTcast

122
intervision @intervision
а стекст скрипта в студию можно?

127
Глеб @Psyhodelic
<?php
$scdef = "your message";
$scip = "IP";
$scport = "Порт";
$scpass = "Пароль";

$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 30);
if(!$scfp) {
$scsuccs=1;
echo''.$scdef.' is Offline';
}
if($scsuccs!=1){
fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
while(!feof($scfp)) {
$page .= fgets($scfp, 1000);
}
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define xml elements
$loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE", "ICQ", "AIM");
$y=0;
while($loop[$y]!=''){
$pageed = ereg_replace(".*<$loop[$y]>", "", $page);
$scphp = strtolower($loop[$y]);
$$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
$$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
//echo'$'.$scphp.' = '.$$scphp.'<br>';
$y++;
}
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
$pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
$pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
$songatime = explode("<SONG>", $pageed);
$r=1;
while($songatime[$r]!=""){
$t=$r-1;
$playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
$playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
$song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
$song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
$song[$t] = urldecode($song[$t]);
$dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
$dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
}
//end song info
fclose($scfp);
}

header ("Content-type: image/png");
$im = ImageCreateFromPng("rj.png");
$color = imagecolorallocate ($im, 0, 0, 0);
imagettftext ($im, 8, 0, 20, 15, $color, "verdana.ttf", "On AIR: $servertitle");
imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song[0]");
imagettftext ($im, 8, 0, 20, 45, $color, "verdana.ttf", "Listeners: $currentlisteners");

imagepng ($im);
imagedestroy ($im);


?>

Ну как то так) Сразу скажу php тока начел изучать так что в скрипте много лишнего :)

122
intervision @intervision
Перед

header ("Content-type: image/png");
$im = ImageCreateFromPng("rj.png");

пишем

$song_conv = (iconv("utf-8","cp1252",$song [0]),3);
потом вместо

imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song[0]");
пишем

imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song_conv");
пробуем...

если не поможет меняем местами "utf-8" и "cp1252", или меняем "cp1252" на "cp1251"

если и тут не поможет то хз я сам в пхп ноль )))

вообще с точки зрения пхп ИМХО правильнее писать строковые данные и переменные отдельно - в этом слукчае в кавычки чзаключаются лишь строковые данные ...

таким образом код должен выглядеть так:

imagettftext ($im, 8, 0, 20, 15, $color, "verdana.ttf", "On AIR: " .$servertitle);
imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: " .$song_conv);
imagettftext ($im, 8, 0, 20, 45, $color, "verdana.ttf", "Listeners: " .$currentlisteners);

обрати внимание на синтаксис и по возможности раздели строковые данные и переменные.... там где кончается текст - закрываем кавычки..

общий пример выглядит так:

"текст " .$переменная. " продолжение текста"

Отредактировано intervision - 16.05.2010
127
Глеб @Psyhodelic
intervision так вобще перестаёт работать(((

122
intervision @intervision
попробуй переменные отделить от текста как выше написано

127
Глеб @Psyhodelic
Тоже пробовал не помогает((( Вот щас переменные отдельно и всё работает, а когда вводишь эту строчку
$song_conv = (iconv("utf-8","cp1252",$song[0]),3);
То исчезает изображение!

122
intervision @intervision
хммм если можно кинь данные в личку по переменным

$scdef = "your message";
$scip = "IP";
$scport = "Порт";
$scpass = "Пароль";

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

122
intervision @intervision
совсем не понятно..... а какая система и какая в ней кодировка по умолчанию?

127
Глеб @Psyhodelic
Ну в статусе SHOUTcast написана кодировка windows-1252

122
intervision @intervision
дык тут дело в кодировки тегов в самих мп3шках....

6245
Тарас @tarasian666
intervision пишет:

дык тут дело в кодировки тегов в самих мп3шках....

Именно, чаще всего кириличные теги пишут в 1251 или как полагается в utf-8.
В отличии от icecast-a shoutcast не "изуродует" кодировку, меняя кодировку страницы шоута можно "увидеть кирилицу" )))
Psyhodelic пишет:

Ну в статусе SHOUTcast написана кодировка windows-1252

и видно кирилицу? или крякозябры?

122
intervision @intervision
по поводу хтаксесса - поставил у себя и теперь в форумеах где не работало - работает..

идея проста как 5 копеек.
1. сервер должен поддерживать mod_rewrite
2. в папке с графической информацией создаем файл .htaccess
3. пишем в нем

RewriteEngine on
rewriterule имя_желаемой_картинки.расширение_желаемой_картинки Имя_скрипта.php

у меня лично выглядит так:

RewriteEngine on
rewriterule index.png index.php

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

127
Глеб @Psyhodelic
tarasian666 нет кракозябры.