我需要从包含艺术家,标题,封面艺术,天气等信息的XML Radionomy(无线电流)中提取信息。
通过将此URL放在浏览器中,可以获取所有信息xml:
http://api.radionomy.com/currentsong.cfm?radiouid=ce5b70e5-dcc3-40a2-81b2-c713a02daf29&apikey=842650d9-c21a-474d-be8f-f44413dfaae2&callmeback=no&type=xml&cover=yes&previ%20ous=no
<tracks>
<radioname>RTFM</radioname>
<rank>2</rank>
<isradionomy>1</isradionomy>
<radurl>http://www.radionomy.com/rtfm</radurl>
<track>
<uniqueid>2905480252</uniqueid>
<title>02-13-2016</title>
<artists>News - US</artists>
<starttime>2016-02-14 00:59:57.177</starttime>
<playduration>121352</playduration>
<current>1</current>
</track>
</tracks>
但是试图通过php获取信息会给我带来错误。我不知道他的问题在哪里,看看我是否可以伸出援手。
我正在尝试这个:
$xml = @simplexml_load_file("
http://api.radionomy.com/currentsong.cfm?radiouid=ce5b70e5-dcc3-40a2-81b2-c713a02daf29&apikey=842650d9-c21a-474d-be8f-f44413dfaae2&callmeback=no&type=xml&cover=yes&previ%20ous=no");
if($xml){
foreach ($xml as $track){
$artiste = $track->artists;
$titre = $track->title;
$pochette = $track->cover;
continue;
}
}else{
echo "error";
}
警告:在...中为foreach()提供的参数无效
答案 0 :(得分:1)
编辑:
注意到更多错误并提供了工作代码。
使用urlencode对您的网址字符串进行编码。使用$ xml-&gt; track来循环跟踪节点。
并停止使用@来查看实际错误。看到错误真的很有帮助。
未触摸原始代码,但您可以从此处获取。
<?php
$xml = simplexml_load_file(urlencode("http://api.radionomy.com/currentsong.cfm?radiouid=ce5b70e5-dcc3-40a2-81b2-c713a02daf29&apikey=842650d9-c21a-474d-be8f-f44413dfaae2&callmeback=no&type=xml&cover=yes&previ%20ous=no"));
if($xml){
foreach ($xml->track as $track){
$artiste = $track->artists;
$titre = $track->title;
$pochette = $track->cover;
continue;
}
} else {
echo "error";
}