Re: Грфическая информация о станции (icecast2+php)
Ну в статусе SHOUTcast написана кодировка windows-1252
Первый русскоязычный форум посвященный интернет-радиовещанию
Форум интернет радио Icecast и Shoutcast → Общие вопросы по интернет радио вещанию → Грфическая информация о станции (icecast2+php)
Ну в статусе SHOUTcast написана кодировка windows-1252
пишет intervision:
дык тут дело в кодировки тегов в самих мп3шках....
Именно, чаще всего кириличные теги пишут в 1251 или как полагается в utf-8.
В отличии от icecast-a shoutcast не "изуродует" кодировку, меняя кодировку страницы шоута можно "увидеть кирилицу" )))
пишет Psyhodelic:
Ну в статусе SHOUTcast написана кодировка windows-1252
и видно кирилицу? или крякозябры?
по поводу хтаксесса - поставил у себя и теперь в форумеах где не работало - работает..
идея проста как 5 копеек.
1. сервер должен поддерживать mod_rewrite
2. в папке с графической информацией создаем файл .htaccess
3. пишем в нем
RewriteEngine on
rewriterule имя_желаемой_картинки.расширение_желаемой_картинки Имя_скрипта.php
у меня лично выглядит так:
RewriteEngine on
rewriterule index.png index.php
теперь при обращении по адресу с конечным файлом изображения выдается та же самая картинка, что и при обращении к скрипту, но таким образом можно обмануть форумы, которые не позволяют в подписи размещать ничего кроме изображений.
tarasian666 нет кракозябры.
пишет Psyhodelic:
tarasian666 нет кракозябры.
пощелкайте кодировки, когда увидите кирилицу - значит попали на нужную кодировку, вот из нее и надо кодировать
Ruskat Нет, через java скрипты такое не возможно
может с помощью ajax возможно
Ruskat теоретично на практиці не пробував
а как можно такое жо но для shoutcast сделать?
суть та же но просто вставить скрипт парсинга shoutcast всесто
Показать / Cкрыть текст
у меня название трека вылезает за рамки изображения , подскажите что нужно дописать чтобы слишком длинные названия переносились на слудующую строку
делаем strlen проверяя длинну и лишнее с конца отрезаем substr, потом обрезаем в начале нужное кол-во и вставляем в другую строчку
tarasian666 хех, все бы хорошо. однако php не мое , можно ли как то по подробней?
я например делаю так
$mr=imagettfbbox (6,0, $font, $cur);
$pr=$mr[2];
$ds=strlen($cur);
while ($pr >= $raz) {
$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($cur)) {$cur=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
выполняется чуть дольше, но удобней на "моно" шрифтах
этим дополнять файл php ?
по желанию
вот есть есть строка вида, что вылазит за границы, предположим она генерируются строкой
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
где $cur это переменная с текстом, тогда перед ней фигачиш вставку, меняя $cur на что у тя в коде
я взял вот этот код изменил только положение
<?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);
?>
Отображалось все как надо
Добавил к нему
$mr=imagettfbbox (6,0, $font, $cur);
$pr=$mr[2];
$ds=strlen($cur);
while ($pr >= $raz) {
$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($cur)) {$cur=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
картинка опустела
ты переменные сравни. они разные
$mr=imagettfbbox (6,0, $font, $cur); $pr=$mr[2]; $ds=strlen($cur); while ($pr >= $raz) { $cur1=substr($cur,0,$ds); $mr=imagettfbbox (6,0, $font, $cur1); $pr=$mr[2]; $ds=$ds-1; } if ($ds!=strlen($cur)) {$cur=$cur1."...";} imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
забыл сказать в переменной $raz храниться значения максимальной длины строки в пикселях.
то есть получается так (я предполагаю)
<?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];
$mr=imagettfbbox (6,0, $font, $file_name);
$pr=$mr[2];
$ds=strlen($file_name);
while ($pr >= $raz) {
$cur1=substr($cur,0,$ds);
$mr=imagettfbbox (6,0, $font, $cur1);
$pr=$mr[2];
$ds=$ds-1;
}
if ($ds!=strlen($file_name)) {$file_name=$cur1."...";}
imagettftext ($im, 6, 0, $x, $y, $color, $font, $cur);
imagettftext ($im, 6, 0, 15, 20, $color, "ft.ttf",$current);
imagepng ($im);
imagedestroy ($im);
?>
несмейтесь...
Форум интернет радио Icecast и Shoutcast → Общие вопросы по интернет радио вещанию → Грфическая информация о станции (icecast2+php)