Метка: mp3
Получить название песни из потока

Хотите знать как получить название песни в теории не будем вдаваться.
Просто приложим код.
<?php /** * Please be aware. This gist requires at least PHP 5.4 to run correctly. * Otherwise consider downgrading the $opts array code to the classic "array" syntax. */ function getMp3StreamTitle($streamingUrl, $interval, $offset = 0, $headers = true) { $needle = 'StreamTitle='; $ua = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36'; $opts = [ 'http' => [ 'method' => 'GET', 'header' => 'Icy-MetaData: 1', 'user_agent' => $ua ] ]; if (($headers = get_headers($streamingUrl))) { foreach ($headers as $h) { if (strpos(strtolower($h), 'icy-metaint') !== false && ($interval = explode(':', $h)[1])) { break; } } } $context = stream_context_create($opts); if ($stream = fopen($streamingUrl, 'r', false, $context)) { $buffer = stream_get_contents($stream, $interval, $offset); fclose($stream); if (strpos($buffer, $needle) !== false) { $title = explode($needle, $buffer)[1]; return substr($title, 1, strpos($title, ';') - 2); } else { return getMp3StreamTitle($streamingUrl, $interval, $offset + $interval, false); } } else { throw new Exception("Unable to open stream [{$streamingUrl}]"); } } var_dump(getMp3StreamTitle('http://str30.creacast.com/r101_thema6', 19200));