<?php set_time_limit(10); //если за 10 секунд скрипт не завершится, то будет прекращен принудительно require('Scrobbler.php'); //php-скробблер $xml[1] = "http://ourdomain:port/live.xspf"; $xml[2] = "http://ourdomain:port/fallback1.xspf"; $xml[3] = "http://ourdomain:port/fallback2.xspf"; //маунты, которые собираемся скробблить, по порядку - от верхнего к фоллбекам //парсим по очереди все маунты, пока не дойдем до последнего. $i = 1; $stream['descr'] = ''; while($stream['descr'] =='') { $xml1 = simplexml_load_file($xml[$i]); //обращение к xspf файлу текущего потока $stream['creator'] = $xml1->trackList->track->creator; //выбираем значение из <trackList><track><creator> - исполнитель $stream['title'] = $xml1->trackList->track->title; //выбираем значение из <trackList><track><title> - название трека $ano = $xml1->trackList->track->annotation; //выбираем значение из <trackList><track><annotation> $mss=explode("\n", $ano); //разбиваем знаечение на масив (т.к. там много чего а нам надо тока строку "Stream Description") $stream['descr']=substr($mss[1],20); $i ++; if ($i>3) break; //цифра - количество наших маунтов минус один. если нужно парсить только первые два или один, //то вместо "3" пишем соответственно "2" или "1" } //читаем данные о исполнителе и песне из last.xml $lastfm = "http://ourdomain/last.xml"; //last.xml - файл, куда записывается текущая песня $lastxml = simplexml_load_file($lastfm); $last['creator'] = $lastxml->creator; $last['title'] = $lastxml->title; if ((strcmp ($last['title'], $stream['title'])) != 0 or (strcmp ($last['creator'], $stream['creator'])) != 0) //сравниваем данные last.xml с только что полученными данными. если отличается, то: { //записываем новые значения в last.xml $txtout="<?xml version='1.0' encoding='UTF-8'?>\r\n<last>\r\n<creator>".$stream['creator']."</creator>\r\n<title>".$stream['title']."</title>\r\n</last>"; $fp = fopen ("/home/user/domains/domains/public_html/last.xml", "w"); //путь к файлу last.xml можно прописать как локальный, так и http:// fwrite($fp,$txtout); fclose($fp); //отправляем на last.fm текущего исполнителя и песню: $scrobbler = new md_Scrobbler('lastfm_user', 'lasfm_password'); $scrobbler->add($stream['creator'], $stream['title'], '', 6000); $scrobbler->submit(); } ?>
<?php set_time_limit(10); //если за 10 секунд скрипт не завершится, то будет прекращен принудительно require('Scrobbler.php'); //php-скробблер $xml[1] = "http://ourdomain:port/live.xspf"; $xml[2] = "http://ourdomain:port/fallback1.xspf"; $xml[3] = "http://ourdomain:port/fallback2.xspf"; //маунты, которые собираемся скробблить, по порядку - от верхнего к фоллбекам //парсим по очереди все маунты, пока не дойдем до последнего. $i = 1; $stream['descr'] = ''; while($stream['descr'] =='') { $xml1 = simplexml_load_file($xml[$i]); //обращение к xspf файлу текущего потока $stream['creator'] = $xml1->trackList->track->creator; //выбираем значение из <trackList><track><creator> - исполнитель $stream['title'] = $xml1->trackList->track->title; //выбираем значение из <trackList><track><title> - название трека $ano = $xml1->trackList->track->annotation; //выбираем значение из <trackList><track><annotation> $mss=explode("\n", $ano); //разбиваем знаечение на масив (т.к. там много чего а нам надо тока строку "Stream Description") $stream['descr']=substr($mss[1],20); $i ++; if ($i>3) break; //цифра - количество наших маунтов минус один. если нужно парсить только первые два или один, //то вместо "3" пишем соответственно "2" или "1" } //читаем данные о исполнителе и песне из last.xml $lastfm = "http://ourdomain/last.xml"; //last.xml - файл, куда записывается текущая песня $lastxml = simplexml_load_file($lastfm); $last['creator'] = $lastxml->creator; $last['title'] = $lastxml->title; if ((strcmp ($last['title'], $stream['title'])) != 0 or (strcmp ($last['creator'], $stream['creator'])) != 0) //сравниваем данные last.xml с только что полученными данными. если отличается, то: { //отправляем новые значения на last.fm $scrobbler = new md_Scrobbler('lastfm_user', 'lasfm_password'); //наш логин и пароль от last.fm $scrobbler->add($stream['creator'], $stream['title'], '', 6000); $scrobbler->submit(); //и записываем их в last.xml $stream['creator'] = htmlspecialchars($stream['creator'], ENT_NOQUOTES); $stream['title'] = htmlspecialchars($stream['title'], ENT_NOQUOTES); $txtout="<?xml version='1.0' encoding='UTF-8'?>\r\n<last>\r\n<creator>".$stream['creator']."</creator>\r\n<title>".$stream['title']."</title>\r\n</last>"; $fp = fopen ("/home/user/domains/domains/public_html/last.xml", "w"); //путь к файлу last.xml можно прописать как локальный, так и http:// fclose($fp); } ?>
Слушателей: 0 Max listens:
<?php $max=0; ?>
Слушателей: 0 Max listens: 0