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

CP1252 ? CP1251

 

11
vadims @vadims
Пользуюсь скриптом для вывода статистики из SHOUTcast
Но выдает в 1252.. куда я не вставлял только
  1. $content = html_entity_decode($content, 0, "cp1251");

и
  1. html_entity_decode($content, 0, "cp1251");

Хост платный..
В чем может быть проблема?

  1. <?php
  2. include('config_radio.php');
  3. $scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 30);
  4. if(!$scfp) {
  5. $scsuccs=1;
  6. echo''.$scdef.' is Offline';
  7. }
  8. if($scsuccs!=1){
  9. fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
  10. while(!feof($scfp)) {
  11. $page .= fgets($scfp, 1000);
  12. }
  13. $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE");
  14. $y=0;
  15. while($loop[$y]!=''){
  16. $pageed = ereg_replace(".*<$loop[$y]>", "", $page);
  17. $scphp = strtolower($loop[$y]);
  18. $$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
  19. if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
  20. $$scphp = urldecode($$scphp);
  21. $y++;
  22. }
  23. $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
  24. $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
  25. $songatime = explode("<SONG>", $pageed);
  26. $r=1;
  27. while($songatime[$r]!=""){
  28. $t=$r-1;
  29. $playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
  30. $playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
  31. $song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
  32. $song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
  33. $song[$t] = urldecode($song[$t]);
  34. $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  35. $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
  36. $r++;
  37. }
  38. fclose($scfp);
  39. }
  40. if($streamstatus == "1"){
  41. echo'
  42. <html>
  43. <head>
  44. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  45. <link rel=stylesheet href="" type="text/css">
  46. <title>'.$scdef.'</title>
  47. </head>
  48. <body text="" bgcolor="">
  49. <p align="center"><center>
  50. <img src="online.jpg"><br>
  51. <b>Stream Title:</b> '.$servertitle.'<br>
  52. <b>Listeners:</b> '.$currentlisteners.' / '.$maxlisteners.'<br>
  53. <b>Bitrate:</b> '.$bitrate.'kbps<br>
  54. <b>Current Song:</b> '.$song[0].'</p><b>
  55. </p>
  56. </body>
  57. </html>';
  58. }
  59. if($streamstatus == "0")
  60. {
  61. echo'
  62. <html>
  63. <head>
  64. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  65. <link rel=stylesheet href="" type="text/css">
  66. <title>Radio Server Is Offline</title>
  67. </head>
  68. <body text="" bgcolor="">
  69. <center>
  70. <img src="offline.jpg">
  71. </body>
  72. </html>';
  73. }
  74. ?>

0
6245
Тарас @tarasian666
html_entity_decode функция для преобразования html символов в текст а не для перекодирования.
если б внимательней читали форму то б нашли iconv('UTF-8','CP1251',$text);

0
11
vadims @vadims
Народ только умничать умеет а сам не чего не знает!
Так как по аси только все умничают!

Я день отмучался но проблему решил - покажите мне на форуме ГДЕ ЭТО ОБСУЖДАЛОСЬ? (так как именно так мне ответили)

iconv(‘windows-1252?,’utf-8//IGNORE’,'текст’); не помогло возвращало ??????? 11

даже так не хочет перкодировать -
  1. $song[$t]= mb_convert_encoding($song[$t], mb_detect_encoding($song[$t], "CP1252"), "UTF8");
  2. $song[$t]= mb_convert_encoding($song[$t], "UTF8", "CP1251");

Вот решение проблемы -

находим -
  1. $song[$t] = urldecode($song[$t]);

меняем на
  1. $song[$t] = html_entity_decode($song[$t]);

P.S. все гениальное - просто!

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

ДЕ ЭТО ОБСУЖДАЛОСЬ? (так как именно так мне ответили)

а поиск зачем?
но видите сами справились, а подняли столько шума.
И не советую нагло стучать посторонним людям в асю за помощью "без пива",
И тверждать что разбираетесь в програмировании когда для изменения одной переменной просто вставляете в начале кода iconv('UTF-8','CP1251',$text); тем более что переменная $text не встречается в даном скрипте. то же самое про $content = html_entity_decode($content, 0, "cp1251");
kavadims пишет:

Народ только умничать умеет а сам не чего не знает!

не судите да несудимы будете

0
6
guestalex @guestalex
kavadims пишет:


Вот решение проблемы -

находим -
  1. $song[$t] = urldecode($song[$t]);

меняем на
  1. $song[$t] = html_entity_decode($song[$t]);

P.S. все гениальное - просто!


Чувак, ты МЕГА!!! Я вчера весь день на это убил, а ты дал 100% решение!!!! Аллилуйя!!! Путь Бог тебя благословит за это!!!!

Кстати, в названии радиостанции, если тоже кракозябры, меняем urldecode на html_entity_decode

Отредактировано guestalex - 09.09.2012
0





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

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