Nasıl bir flickr.photos.search API çağrısı XML erişmek mi?

2 Cevap php

Müvekkilimin sistem flickr.photos.search API çağrısı kullanarak kendi Flickr hesabından özel fotoğraflara erişmek gerekiyor. Ben kurmak ve bu çağrı için oluşturulan URL var. Ben tarayıcı bu URL'yi ziyaret ettiğinizde, onu gerektiği gibi XML çıktılar.

(API referans: http://www.flickr.com/services/api/flickr.photos.search.html)

Ancak, PHP bunu XML erişmek ve SimpleXML PHP uzantısı kullanarak göstermek istiyorum. Ben bir. Xml dosyası oturan değil, dinamik bir URL değil beri, XML erişmek için nasıl anlamaya olamaz.

(Browser) XML dosyası bu gibi görünüyor:

<rsp stat="ok">
  <photos page="1" pages="1" perpage="100" total="4">
    <photo id="4332852622" owner="36520372@N05" secret="xxxxxxxx" server="2760" farm="3" title="building" ispublic="0" isfriend="0" isfamily="0"/>
    <photo id="4332113745" owner="36520372@N05" secret="xxxxxxx" server="2803" farm="3" title="digging" ispublic="0" isfriend="0" isfamily="0"/>
    <photo id="4332852444" owner="36520372@N05" secret="xxxxxxx" server="4025" farm="5" title="house" ispublic="0" isfriend="0" isfamily="0"/>
    <photo id="4332113699" owner="36520372@N05" secret="xxxxxxx" server="2802" farm="3" title="PaulLuomaHab" ispublic="0" isfriend="0" isfamily="0"/>
  </photos>
</rsp>

Ve PHP ile ben bu çalışıyorum:

$rsp = simplexml_load_file($flickrURL);
foreach($rsp->photos->photo as $photo) {
    echo $photo->title;
}

Bu hiçbir şey döndürür. Ben burada bir şey eksik?

NOTE: I echo "Ding!"; Yukarıda foreach döngünün içine eklenen ve yankı Ding! Ding! Ding! Ding!, Bu tanıma demektir 4 fotoğrafları vardır YAPAR ve zamanların doğru sayıda döngü.

Yani görünüşe göre sadece nedense $ fotoğraf-> başlığı ile mutlu değil?

Also

Ben kullandığınızda print_r($photo) Ben bu olsun:

SimpleXMLElement Object ( [@attributes] => Array ( [id] => 4332852622 [owner] => 36520372@N05 [secret] => 88fff62f43 [server] => 2760 [farm] => 3 [title] => building [ispublic] => 0 [isfriend] => 0 [isfamily] => 0 ) )

2 Cevap

SimpleXML kullanırken, her zaman onu temsil düğüm sonra PHP değişkeni isim olmalıdır. Bu sizin XML ağacı nerede net bir fikir tutmak yardımcı olur. Örneğin, kod olmalı:

$rsp = simplexml_load_file($flickrURL);
foreach($rsp->photos->photo as $photo)
{
    echo $photo->title;
}

Benim kendi, doh bunu çözdük. Başlık XML öğesi bir nitelik değil, bir düğüm, bu yüzden bir nesne özniteliği (kafa karıştırıcı terminoloji) gibi bir dizi ziyade gibi erişilebilir oluyor.

Yani echo $photo['title']; ve puf var! çalışır.