ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
7   •   Посмотреть все темы

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
127
Глеб @Psyhodelic
  1. <?php
  2. $scdef = "your message";
  3. $scip = "IP";
  4. $scport = "Порт";
  5. $scpass = "Пароль";
  6. $scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 30);
  7. if(!$scfp) {
  8. $scsuccs=1;
  9. echo''.$scdef.' is Offline';
  10. }
  11. if($scsuccs!=1){
  12. fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
  13. while(!feof($scfp)) {
  14. $page .= fgets($scfp, 1000);
  15. }
  16. ######################################################################################################################
  17. /////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18. //define xml elements
  19. $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE", "ICQ", "AIM");
  20. $y=0;
  21. while($loop[$y]!=''){
  22. $pageed = ereg_replace(".*<$loop[$y]>", "", $page);
  23. $scphp = strtolower($loop[$y]);
  24. $$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
  25. if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
  26. $$scphp = urldecode($$scphp);
  27. // uncomment the next line to see all variables
  28. //echo'$'.$scphp.' = '.$$scphp.'<br>';
  29. $y++;
  30. }
  31. //end intro xml elements
  32. ######################################################################################################################
  33. ######################################################################################################################
  34. /////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  35. //get song info and history
  36. $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
  37. $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
  38. $songatime = explode("<SONG>", $pageed);
  39. $r=1;
  40. while($songatime[$r]!=""){
  41. $t=$r-1;
  42. $playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
  43. $playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
  44. $song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
  45. $song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
  46. $song[$t] = urldecode($song[$t]);
  47. $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  48. $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
  49. $r++;
  50. }
  51. //end song info
  52. fclose($scfp);
  53. }
  54. header ("Content-type: image/png");
  55. $im = ImageCreateFromPng("rj.png");
  56. $color = imagecolorallocate ($im, 0, 0, 0);
  57. imagettftext ($im, 8, 0, 20, 15, $color, "verdana.ttf", "On AIR: $servertitle");
  58. imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song[0]");
  59. imagettftext ($im, 8, 0, 20, 45, $color, "verdana.ttf", "Listeners: $currentlisteners");
  60. imagepng ($im);
  61. imagedestroy ($im);
  62. ?>

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

0
122
intervision @intervision
Перед

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

пишем

  1. $song_conv = (iconv("utf-8","cp1252",$song [0]),3);

потом вместо

  1. imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song[0]");

пишем

  1. imagettftext ($im, 8, 0, 20, 30, $color, "verdana.ttf", "Song: $song_conv");

пробуем...

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

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

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

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

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

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

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

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

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

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

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

То исчезает изображение!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. RewriteEngine on
  2. rewriterule index.png index.php

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

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

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.