1

Тема: Передача кирилической информации о треке в TuneIn

Добрый день. У меня есть icecast сервер. Я хочу передавать информацию об играющем треке в tunein. Написал такой скрипт:

<?php



$file = file("/var/log/icecast2/playlist.log");
$file_array = $file;
$far = array_slice($file, -1);
$far = array_reverse($far);
foreach ($far as $arr1 => $arr2){
        $elem = explode('|', $arr2);

        $song = $elem[3];
        $infos_artist = explode(' - ', $song);
        $infos_artist[0] = urlencode(trim($infos_artist[0]));
        $infos_artist[1] = urlencode(trim($infos_artist[1]));
        $partnerId = "1";
        
        $partnerKey = "1";
        
        $stationId = "1";
        
        $artist_tunein = str_replace(' ','+', $infos_artist[0]);
        
        $title_tunein = str_replace(' ','+', $infos_artist[1]);
        
        $commercial = false;
        
        
        
        if (($infos_artist[0] == "HCore+FM") || ($infos_artist[0] == "Promo")) $commercial = true;
        
        
        
        
        
        
        $url_tunein = "http://air.radiotime.com/Playing.ashx?partnerId=".$partnerId."&partnerKey=".$partnerKey."&id=".$stationId."&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial;
        
        
        
        
        $ch = curl_init();
        
        curl_setopt($ch, CURLOPT_URL,$url_tunein);
        
        curl_setopt($ch, CURLOPT_TIMEOUT, 10);
        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
        $data = curl_exec($ch);
        
        $server_output = simplexml_load_string($data);
        
        curl_close($ch);

?>

Но именно русские песни он не передаёт. Какое может быть решение? Заранее спасибо.

2

Re: Передача кирилической информации о треке в TuneIn

В начале скрипта

header('Content-type: text/html; charset=UTF-8');

Ну и заменить

$data = utf8_decode(curl_exec($ch));

Попробуйте, может и прокатит. Вобще конечно зверский способ - парсить логи, не забывайте: отсылать информацию для каждого трека можно только один раз.

3

Re: Передача кирилической информации о треке в TuneIn

пишет gyurgin_1:

В начале скрипта

header('Content-type: text/html; charset=UTF-8');

Ну и заменить

$data = utf8_decode(curl_exec($ch));

Попробуйте, может и прокатит. Вобще конечно зверский способ - парсить логи, не забывайте: отсылать информацию для каждого трека можно только один раз.

У меня уже 3 недели каждые 15 сек отправляет, всё нормально)

Не работает

Отредактировано dkova (07-06-2015 22:16:45)

4

Re: Передача кирилической информации о треке в TuneIn

Ну понятно что работает, но наглеть все же не рекомендую, правила есть правила. Попробуйте из $url_tunein вот это

."&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial

убрать и отправить данные вот таким

curl_setopt($ch, CURLOPT_URL, $url_tunein);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "&title=".$title_tunein."&artist=".$artist_tunein."&commercial=".$commercial);

способом.
И смотрите что прилетает в ответ, помогает иногда))

5

Re: Передача кирилической информации о треке в TuneIn

Тестировал таким же способом треки с умляутами - ромбами отображаются.