2011-03-25 69 views
1

我有下面的PHP代码:使用PHP限制1个XML查询的结果?

$file = 'http://api.themoviedb.org/2.1/Movie.getInfo/en/xml/937a7e45f8f9e50cdb80e21fa50abc39/6479'; 
if(!$xml = simplexml_load_file($file)) { 
    exit('Failed to open '.$file); 
} 
    foreach($xml->movies->movie->images->image as $image) { 
     if(strcmp($image['size'],"cover") == 0) { 
       echo "".$image['url']."<br/ >"; 
     } 
    } 

在XML文件中有由size =“盖”多张图片。我怎样才能将上面的代码的结果限制为1?

回答

1

不要使用foreach语句。 $image = $xml->movies->movie->images->image;会给你1张图片(尽管第一张图片很多,但这可能是一件坏事,取决于你的使用情况)。

编辑,这部作品也相当不错,而且你不必依赖于特定的顺序是图像:

foreach($xml->movies->movie->images->image as $image) { 

    if ($image['size'] == 'cover') { 
     echo "IMG:".$image['url']."<br/ >"; 
     break; //STOPS LOOP ON FIRST IMAGE 
    } 
} 
+0

但这给我的第一形象,但第一个。是否有和我可以使用size =“cover”获得第一张图片的陈述? – 2011-03-25 17:08:42

+0

你可以发布的XML? – PiZzL3 2011-03-25 17:09:20

+0

如果图像每次都是相同的顺序,你可以试试这个'$ image = $ xml -xpath('/ opensearchdescription/movies/movie/images/image [3]');'。还有这个直接处理属性:http://php.net/manual/en/simplexmlelement.attributes.php – PiZzL3 2011-03-25 17:14:15