Задать вопрос
@nikonovichk

Почему не работает скрипт на хостинге, но на локалке работает?

Короче, у меня есть сайт и на нем есть плеер с потоком онлайн-радиостанции. Я захотел добавить в плеер данные об играющем треке в эфире и для этого зашел на сайт хостинга для вещания на IceCast 2 (radioheart.ru). На их сайте был скрипт для получения данных об играющем треке, который я взял. Написав код на локалке, все работало идеально (ошибок не было) и играющий трек показывался, но при переносе скрипта на хостинг (я использую hoster.kz) скрипт перестал работать.

Скрипт с техникой добавления на сайт:

Создаем файл radiostat.php, вносим в него следующий код и сохраняем в корне сайта:
<?php
                            //НАСТРОЙКИ СКРИПТА//
                            //Ссылка на картинку, которая будет отображаться, если изображение не найдено в базе LAST.FM
                            $no_photo_url='http://upload.wikimedia.org/wikipedia/commons/3/37/No_person.jpg';
                            $width='100'; //ширина картинки
                            $height='100';  //высота картинки
                            //НЕ ИЗМЕНЯЙТЕ НИЧЕГО НИЖЕ///
                            //LIVE STREAM
                            $data = json_decode(file_get_contents("http://s0.radioheart.ru:8000/json.xsl?mount=/radioart"));
                            if (!count($data->mounts) || strlen($data->mounts[0]->server_name) < 2) {
                                //NONSTOP
                                $data = json_decode(file_get_contents("http://s0.radioheart.ru:8000/json.xsl?mount=/nonstop"));
                            }
                            $stream_title = $data->mounts[0]->server_name;
                            //Если сайт в кодировке windows-1251 (cp-1251), раскомментируйте следующую строчку
                            //$stream_title = iconv("UTF-8", "WINDOWS-1251", $stream_title);
                            $stream_description = $data->mounts[0]->description;
                            $listeners = $data->mounts[0]->listeners;
                            $song = $data->mounts[0]->title;
                            $image = '';
                            //Если сайт в кодировке windows-1251 (cp-1251), раскомментируйте следующую строчку
                            //$song = iconv("UTF-8", "WINDOWS-1251", $song);
                            $artist = explode(" - ", $song);
                            $artist = $artist[0];
                            $artist = str_replace(" ", " ", $artist);
                            $size = "large";
                                                        // Выводим данные
                            echo "<div id='radiostat'>";
                            
                            echo "Название потока: $stream_title<br />";
                                                        
                            echo "Описание потока: $stream_description<br />";
                                                        
                            echo "Слушателей: $listeners<br />";
                                                        
                            echo "Сейчас в эфире: $song<br />";
                                                        
                            echo "</div>";
                            
                            ?>


Добавляем контейнер на сайте, где должна отображаться информация:

<div id="radiostat">Загрузка...</div>

Подключаем библиотеку Jquery между тегами и , если она у вас еще не подключена!

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>


Вставляем между тегами и в код сайта после подключения Jquery

<script>
                            function nowplay()
                            {
                                $.ajax({
                                    url: "/radiostat.php",  //Тут указываем файл со скриптами
                                    cache: false,
                                    success: function(html){
                                        $("#radiostat").html(html); //Контейнер для вывода информации
                                    }
                                });
                            }

                            $(document).ready(function(){
                                nowplay();
                                setInterval('nowplay()',30000);  //Время в милесекундах, 30000=30сек
                            });
                        </script>
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@zvvasya
что возвращает file_get_contents("s0.radioheart.ru:8000/json.xsl?mount=/radioart") ?
возможно file_get_contents на хостинге ограничен
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы