Получение URL-адреса мультимедиа Soundcloud через PHP CURL? - PullRequest
0 голосов
/ 12 октября 2011

Я использую Soundcloud API + PHP для получения информации о дорожках soundcloud, чтобы использовать jPlayer в качестве mp3-плеера для плейлистов.Теперь я могу полностью получить доступ ко всей информации о треке, кроме фактической ссылки на mp3, чтобы воспроизвести трек.

Согласно API, если дорожка позволяет осуществлять потоковую передачу, вам просто нужно свернуть URL-адрес потока (т.е.: http://api.soundcloud.com/tracks/24887826/stream?client_id=xxx).

Теперь, если я попытаюсь свернуть это, мойРезультаты - это простой HTML-бит <html><body>You are being <a href="http://ak-media.soundcloud.com/sjkn57c6gAA5.128.mp3?AWSAccessKeyId=AKIAJBHW5FB4ERKUQUOQ&amp;Expires=1318411541&amp;Signature=yaX7Noe%2F8c5dFF0H%2BGfhZ%2FX0130%3D&amp;__gda__=1318411541_6ed9d2af39e51b5f1e94e659eff0495d">redirected</a>.</body></html>.

. Нужная ссылка - это целое media.soundcloud.com/sjkn57c6gAA5 и все. Однако, если я попытаюсь найти xpath '//a/@href', я не получу никаких результатов. Может кто-нибудь указатьмне в правильном направлении, как получить эту ссылку, чтобы я мог генерировать соответствующую ссылку на файл?

Спасибо заранее!

Tre

1 Ответ

0 голосов
/ 12 октября 2011

Если вы используете xpath в HTML (кстати, это не рекомендуется, поскольку HTML не является подмножеством XML, если он не является XHTML и не требует закрытия некоторых тегов), не должен ли он быть // html /body / a / @ href?

В противном случае вы можете использовать регулярное выражение для извлечения URL:

if(preg_match('/href="(.*?)"/', $m)) {
    $url = $m[1];
}

Или вы можете сузить его, чтобы разделить другие части, но вам нужнобудьте очень осторожны, потому что я сомневаюсь, что API гарантирует, что URL всегда будет иметь одинаковый формат (например, субдомен всегда будет заканчиваться медиа).

...