从XML php中提取信息会给我带来错误

时间:2016-02-14 00:32:16

标签: php xml streaming

我需要从包含艺术家,标题,封面艺术,天气等信息的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()提供的参数无效

1 个答案:

答案 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";
}