我正在使用Soundcloud API + PHP来提取有关soundcloud曲目的信息,以便将jPlayer用作播放列表的mp3播放器。现在,我可以完全访问有关该轨道的所有信息,除了实际的mp3链接,以便播放该轨道。
根据API,如果轨道允许流式传输,您只需要cURL流URL(即:http://api.soundcloud.com/tracks/24887826/stream?client_id=xxx)。
现在,如果我尝试cURL,我的结果是一个简单的HTML位<html><body>You are being <a href="http://ak-media.soundcloud.com/sjkn57c6gAA5.128.mp3?AWSAccessKeyId=AKIAJBHW5FB4ERKUQUOQ&Expires=1318411541&Signature=yaX7Noe%2F8c5dFF0H%2BGfhZ%2FX0130%3D&__gda__=1318411541_6ed9d2af39e51b5f1e94e659eff0495d">redirected</a>.</body></html>
。
我想要的链接是整个media.soundcloud.com/sjkn57c6gAA5
,就是这样。但是,如果我尝试xpath '//a/@href'
,我得不到返回的结果。任何人都可以指出我如何获取此链接的正确方向,以便我可以生成文件的相应链接?
提前致谢!
滓
答案 0 :(得分:0)
如果您在HTML上使用xpath(不推荐使用,因为HTML不是XML的子集,除非它是XHTML并且不需要关闭某些标记),不应该是// html /体/一个/ @ HREF?
否则,您可以使用正则表达式来提取URL:
if(preg_match('/href="(.*?)"/', $m)) {
$url = $m[1];
}
或者您可以将其缩小以剥离其他部分,但您需要非常小心,因为我怀疑API保证URL始终具有相同的格式(例如,子域将始终以媒体结束)。