Как создать парсер на AJAX

Статус
В этой теме нельзя размещать новые ответы.

ANDREW

Создатель
Регистрация
22 Июн 2011
Сообщения
32
Реакции
2
Как создать парсер сервера Icecast c помощью AJAX/
 
Возможно помогут эти скрипты.

PHP:
///////Отображение ведущего когда он в эфире/////////
<?
$handle = fopen("http://100.00.000.00:8008/status2.xsl?mount=/radio", "rb"); //Укажите Ваши ip, порт и основной маунт
$contents = '';
while (!feof($handle)) { $contents .= fread($handle, 8192); }
fclose($handle);
$mas=explode(",",$contents);
$dj=$mas[15]; $dj = str_replace ("~", " ICQ: ", $dj); if ($text =='' and $dj=='')
{
/////////////////////////////////////Отображение Non stop когда нету ведущего/////////
$handle = fopen("http://100.00.000.00:8008/status2.xsl?mount=/nonstop", "rb"); //Укажите Ваши ip, порт и нон-стоп маунт
$contents = '';
while (!feof($handle)) { $contents .= fread($handle, 8192); }
fclose($handle); $mas=explode(",",$contents); $dj='Non Stop'; }
echo 'Ведущий: '.$dj;
########################################################################################
//Далее вывод песни которая играет
$ip = "100.00.000.00";              //Адрес сервера или IP
$port = "8008";            //Порт
$ice2_station = "My Radio Station";    //НЕазвание странции или маунта
////////////////start the parsin action\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//opening socket
$fp = fsockopen("$ip", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
    $success=2;  //set if no connection
}
if($success!=2){ //if connection
fputs($fp,"GET /status2.xsl HTTP/1.0\r\nUser-Agent: Icecast2 XSL Parser (Mozilla Compatible)\r\n\r\n"); //get status2.xsl
while(!feof($fp)) {
  $page .= fgets($fp, 1000);
}
fclose($fp); //close connection
$page = ereg_replace(".*<pre>", "", $page); //extract data
$page = ereg_replace("</pre>.*", ",", $page); //extract data
$numbers = explode(",",$page); //bomb it and extract data
$cur_song = $numbers[5];
$cur_song = $numbers[16];
 
echo'<br/>Сейчас играет: '.$cur_song.'';
}
?>

PHP:
<?
$ch = curl_init (); // инициализация
curl_setopt ($ch , CURLOPT_URL , "http://dm-fm.ce.ms/inf.php"); // адрес страницы для скачивания
curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"); // каким браузером будем прикидываться (Это наверное не обязательно но я оставил)
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); // нам нужно вывести загруженную страницу в переменную
$content = curl_exec($ch); // скачиваем страницу
curl_close($ch); // закрываем соединение
echo ''.$content.''; //то что будет отображаться на странице
?>


Скрипт автообновления блока
Это чтоб пользователям не нужно было самим обновлять страницу.
Рекомендую ставить интервал не менее 100000
1000 = 1 секунда
HTML:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#info').load('index.php?_=' +Math.random()).fadeIn("slow");
//#info - div, куда будет выводиться информация (та страница на которой отображается информация)
//info.php - скрипт, выводящий необходимую нам информацию
}, 150000); //интервал обновления, в миллисекундах
</script>
</head>
<body>
<!--Далее пример использования-->
<div id="info">
<?php include("info.php"); ?>
</div>
</body>
</html>

Если у Вас возникла похожая проблема (или Вам прсто по каким то причинам не удаётся парсить информацию напрямую) тогда сделайте следуещее:
На хостинге с icecast сервером создайте файл к примеру info.php
и поместите в него первый код.
Затем на том хостинге на котором нужно отображать информацию создайте файл к примеру info.php и поместите внего второй код.
После этого вставьте информацию в нужную Вам страницу используя третий код.
Если Вам не нужно автообновление то можете подключить сразу файл info.php
К примеру так
include 'info.php';
Если Вы используете движок DLE то в нужном месте шаблона вставьте
{include file='info.php'} при этом файл info.php должен находится в корневой папке домена.
Или же {include file='dir/info.php'} если в папке
Ну вот собственно и всё...
Один минус в скрипте который выводит название песни. Он не дружит с русскими буквам
Оказывается всё дело в ID3 тегах. Перед заливокй надо переписывать...

Источник: Для просмотра ссылки Войди или Зарегистрируйся
 
Ну парсер изначально работает на РНР, а аякс лишь выводит если не ошибаюсь
 
Ну парсер изначально работает на РНР, а аякс лишь выводит если не ошибаюсь
AJAX - подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером.
В данном случае AJAX = JavaScript + PHP
 
я так понял парсить должно музыку? получилось ли ? почему именно Icecast?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху