2011-03-25 67 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