2014-03-03 8 views
0

Я искал высоко и низко по всему миру для скриптов и методов, которые могут извлекать информацию о песнях из потоков shoutcast, используя php. Хотя все они отлично работают на локальном хосте, все они не работают при загрузке на веб-хостинге (кстати, это 000webhost.com).Попытка получить название песни из Shoutcast с использованием нескольких методов, ни одна из которых не работает. Пожалуйста, см.

Это методы, которые я использовал:

  1. с использованием fsockopen ... В данном случае это дает «Тайм-аут соединения» ошибка. При поиске в Интернете я узнал, что веб-хост может блокировать исходящие соединения.

  2. Затем я перешел к методу file_get_contents. Здесь возвращаемое значение становится ложным. Я уже проверил, что allow_url_fopen на через phpinfo()

  3. Затем я перешел на использование завитка через следующий код:

    $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://s8.voscast.com:8562/"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2'); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 20); //curl_setopt($curl, CURLOPT_FOLLOWLOCATION,true); $shoutcast=curl_exec($curl);

Опять же, это возвращает ложь. Обратите внимание, что я прокомментировал CURLOPT_FOLLOWLOCATION, потому что этот оператор дает ошибку, которую он не может использовать, когда php работает в безопасном режиме.

Нет ли другого пути? Независимо от того, какие скрипты/методы/учебники/предложения, которые я обнаружил, используют один из этих трех методов, когда они вообще не работают для меня.

Обратите внимание, что они запускают JUST FINE на моем компьютере, то есть на локальном хосте. Но как только они загружаются на веб-хосте, он перестает работать.

Есть ли другой способ/обходной способ/метод, который мы можем попробовать? Мне просто нужно получить название песни, и ничего больше.

Большое спасибо!

ответ

0

Чтобы определить метаданные, вы должны каким-то образом установить соединение с сервером SHOUTcast. К сожалению, 000webhost.com - довольно ужасный хостинг-провайдер, предоставляющий уровень обслуживания, который недостаточен для ваших нужд. Они ограничивают, какие соединения вы можете сделать, что, скорее всего, проблема, с которой вы сталкиваетесь.

Единственный способ обойти это - использовать хостинг-провайдера, который позволяет устанавливать соединения с другими серверами. Обратите внимание, что даже поставщики, которые позволяют вам устанавливать соединения, иногда не разрешают подключения за пределами порта 80. Если вы хотите быть уверены, что можете делать то, что хотите, рассмотрите экземпляр VPS стоимостью 5 долларов США, из Digital Ocean или аналогичный.

В качестве альтернативы всему этому у меня есть бесплатный service that can send your SHOUTcast metadata to your clients via AJAX. Затем вы можете использовать любой хост, который вы хотите.

 Смежные вопросы

  • Нет связанных вопросов^_^