Всем привет, в Пхп не шарю, помогите, хочу чтобы скрипт с др сайта подгужался на мой сайт, пишу Код (PHP): <?php include "http://www,site.ru/rгггг.php"; ?> но выдает ошибку Помогите пожалуйста!!!
http://www,site.ru/rгггг.php это всеголишь пример)) мне нужно просто с др сайта к себе скрипт подключить сам скрипт у меня пахать не будет т.к он стоит на др сервере,а сервер на локальной сети и просто выдает инфу в инет вот код Код (PHP): <?php $file=file("http://10.0.0.11/_УЛЬТРА-Плейлист/broad.int"); //$str="03020813595500Dave Koz - Know You By Heart D:\МУЗЫКА\Инстр\Dave Koz - Know You By Heart.mp3 00:03:29"; $keywords = preg_split("/\D:+/", $file[0]); $keywords1 = preg_split("/[0-9]+/", $keywords[0]); $song=$keywords1[1]; if(empty($song)){ $song="On-Line"; } echo " <a class='forum_link_01' href='http://80.64.18.105:8000/listen.pls'>".$song."</a> <a href='?l=pl'>:: Далее в эфире </a><a href='http://80.64.18.105:8000/listen.pls'>:: Слушать Online</a>"; ?>
эмм.... если я все правильно понял... то для начала вам необходимо будет подключиться к удаленному серверу, аля фтп-манагер, и только потом вы сможете подключить пхп-файл.
разобпался)) Но вот такая прблема с рускими буквами, как зделать чтбы кирилица поддерживалась Код (PHP): <?php $scdef = "Мое сетевое радио"; $scip = "10.1.27.145"; $scport = "8000"; $scpass = "****"; $refreshrate = "200"; $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); } $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS"); $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); $y++; } $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++; } fclose($scfp); } if($streamstatus == "1"){ echo'Сейчас играет: <span class="playdisplay">'.$song[0].'</span>'; } if($streamstatus == "0") { echo'Радио офф'; } ?> пишет Сейчас играет: 229. ÿÿÿÿ - ÿÿÿÿ ÿÿÿÿÿÿ А с инглишом все норм Сейчас играет: 130. Sergio Fernandez And Luigi Daniell - Afterhour (Outdoor Mix)
Попробуй использовать mb_ereg_replace вместо ereg_replace Все то же самое. только обрабатывает многобайтные символы. Используй приблизительно так: Код (PHP): $pageed = mb_ereg_replace(".*<$loop[$y]>", "", $page, "utf-8"); $scphp = mb_strtolower($loop[$y], "utf-8"); mb_ereg_replace mb_strtolower и т.д. поинтересуйся в документации PHP P.S. - по некоторым рекомендациям, при использовании функций mb_* кодировку в конце каждой такой функции указывать ОБЯЗАТЕЛЬНО. Хотя в документации говорится, что если не указать, будет использована локаль по умолчанию - не верьте, лучше укажите. Ну вот пример разницы между Код (PHP): strlen("Вася"); // Вернет результат = 8 и Код (PHP): mb_strlen("Вася","utf-8"); // Вернет результат = 4 Ну и в случае с mb_strtolower($loop[$y], "utf-8"); тоже будет счастье ...
редактор Notepad++ Кодировка UTF-8 Спросил одного человека, он мне сказал дело может быть не в семом ПХП, а в файле исполняемом (сервере), т.к он мне сказал что сервер шлет на мой сайт кодировку 1251 вот скрин ниже сам файл может кто декомпелирует его в utf-8
правильно говорит - ищем на вашем веб-сервере файлик php.ini , в нем ищем строку Код (CODE): AddDefaultCharset win-1251 и меняем ее на Код (CODE): AddDefaultCharset utf8
ЗАЧЕМ!? Ну или ... не только DLL играет роль, а и EXE Вот тут и руссификаторы есть - читай ответ по ссылке до конца И тут можно попробовать И если после этих патчей все как бы произойдет хорошо, тебе с ОГРОМНЫМ успехом может побить русский текст стандартная функция PHP - strtolower(); или иная строковая функция, так что прислушайся к совету и поменяй в коде все строковые функции на многобайтные mb_*, поверь на слово НЕ ПОМЕШАЕТ.
Код (CODE): adddefaultcharset = utf-8 это не норм... это не правильная строка... должно быть так, как я написал выше, также посмотрите в конфиге апача. Никаких дллок перекомпиливать не нужно, все настраивается руками.
Я читал про это но не помогло изначально ставил русифицырованые файлы, на самом сервере норм текст кажет, а когда делаю запрос с айта то русские буквы в "закарьчка" превращаются вот код запроса к серваку Код (PHP): <?php $scdef = "Мое сетевое радио"; $scip = "10.1.27.145"; $scport = "8000"; $scpass = "***********"; $refreshrate = "200"; $scfp = mb_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 .= mb_fgets($scfp, 1000); } $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS"); $y=0; while($loop[$y]!=''){ $pageed = mb_ereg_replace(".*<$loop[$y]>", "", $page, "utf-8"); $scphp = mb_strtolower($loop[$y], "utf-8"); $$scphp = mb_ereg_replace("</$loop[$y]>.*", "", $pageed, "utf-8"); if($loop[$y]==mb_SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE) $$scphp = mb_urldecode($$scphp); $y++; } $pageed = mb_ereg_replace(".*<SONGHISTORY>", "", $page, "utf-8"); $pageed = mb_ereg_replace("<SONGHISTORY>.*", "", $pageed, "utf-8"); $songatime = mb_explode("<SONG>", $pageed, "utf-8"); $r=1; while($songatime[$r]!=""){ $t=$r-1; $playedat[$t] = mb_ereg_replace(".*<PLAYEDAT>", "", $songatime[$r], "utf-8"); $playedat[$t] = mb_ereg_replace("</PLAYEDAT>.*", "", $playedat[$t], "utf-8"); $song[$t] = mb_ereg_replace(".*<TITLE>", "", $songatime[$r], "utf-8"); $song[$t] = mb_ereg_replace("</TITLE>.*", "", $song[$t], "utf-8"); $song[$t] = mb_urldecode($song[$t]); $dj[$t] = mb_ereg_replace(".*<SERVERTITLE>", "", $page, "utf-8"); $dj[$t] = mb_ereg_replace("</SERVERTITLE>.*", "", $pageed, "utf-8"); $r++; } fclose($scfp); } if($streamstatus == "1"){ echo'Сейчас играет: <span class="text2">'.$song[0].'</span>'; } if($streamstatus == "0") { echo'Радио офф'; } ?>
Текст запроса к серверу Код (PHP): while($loop[$y]!=''){ $pageed = mb_ereg_replace(".*<$loop[$y]>", "", $page); $scphp = strtolower($loop[$y]); $$scphp = mb_ereg_replace("</$loop[$y]>.*", "", $pageed); if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE) $$scphp = urldecode($$scphp); $scphp = strtolower($loop[$y]); надо написать mb_strtolower($loop[$y], "utf-8"); Во всех функциях mb_* ОБЯЗАТЕЛЬНО в конце (последним параметром) указывать кодировку. например mb_ereg_replace("</$loop[$y]>.*", "", $pageed, "utf-8"); ВНИМАНИЕ! Во всех функциях указывать кодировку. Если кодировка "utf-8" не поможет можно попробовать "windows-1251"
что вы тут развели... тут не базар... еще раз повторяю, что бы все было нормльно - устанавливаем в php.ini и httpd.conf: AddDefaultCharset utf8, в редакторе сохраняем код в кодировке utf8 и ВСЕ. больше ничего делать не нужно. З,Ы,: в мета тоже поставьте утф8.
Сейчас да. Но я ведь код копировал из твоего топика ... Кроме того, ты сейчас просто напихал mb_ ... куда не попадя. Если ты прицепишь от БАЛДЫ к любой функции mb_ - это не поможет и чуда не произойдет. Я тебе говорил ранее - это касается строковых функций, да и то надо уточнять в документации, какая поддерживается а какая нет .. Ну хотябы тут посмотреть аргументацию - а тут "Функции мультибайтных строк" ... в конце материала весь перечень таких функций. Или здесь. Ну к примеру ... if($loop[$y]==mb_SERVERGENRE || $loop[$y]==SERVERTITLE - это к чему? или $$scphp = mb_urldecode($$scphp); - если применять, то где кодировка? а это так вообще ... $page .= mb_fgets($scfp, 1000); - Ты проверял в документации она поддерживается как многобайтная? Ну да ладно. Если все рекомендации сделаны правильно - от меня, а так же все что тебе рекомендует omfgpanda и после этого не работает. Я думаю, что значит не произошла руссификация у тебя. Иначе со стороны веб-сервера и кода в скрипте, уже ни каких затыков быть не может. Ищи проблемы в SHOUTcast DNAS.