2010-02-05 4 views
0

내 고객의 시스템은 flickr.photos.search API 호출을 사용하여 Flickr 계정에서 개인 사진에 액세스해야합니다. 나는 그것을 설정하고 해당 호출에 대해 생성 된 URL을 얻었습니다. 브라우저에서 해당 URL을 방문하면 XML을 출력해야합니다.flickr.photos.search API 호출에서 XML에 액세스하려면 어떻게합니까?

(API 참조 : http://www.flickr.com/services/api/flickr.photos.search.html는)

그러나, PHP에서 나는 XML에 액세스하고 SimpleXML을의 PHP 확장을 사용하여 표시 할. .xml 파일에 있지 않고 동적 URL에 있기 때문에 XML에 액세스하는 방법을 알 수 없습니다.

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

를 그리고 PHP와 나는이 노력하고있어 :

(브라우저에서) XML 파일은 다음과 같습니다 그것은 전혀 아무 것도 반환하지 않습니다

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

. 내가 여기서 뭔가를 놓치고 있니?

참고

: 나는 위의 foreach 루프의 내부 echo "Ding!";을 추가하고, 그것이 4 개 사진이 있습니다 인식하고 배의 오른쪽 번호를 통해 반복 것을 의미합니다! 에코 땡 땡 땡 땡합니까!!!.

분명히 어떤 이유로 $ photo-> title이 만족스럽지 않습니까?

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

답변

0

SimpleXML을를 사용하여, 당신은 항상 나타내는 노드 후 당신의 PHP 변수의 이름을 지정해야합니다

또한

내가 print_r($photo)를 사용 내가이 얻을. XML 트리에서 어디에 있는지 명확하게 파악하는 데 도움이됩니다. 예를 들어, 코드는 다음과 같아야합니다.

$rsp = simplexml_load_file($flickrURL); 
foreach($rsp->photos->photo as $photo) 
{ 
    echo $photo['title']; 
} 
+0

감사합니다.이 기능은 작동시키기위한 간단한 테스트입니다. 불행히도 $ rsp로 이름을 바꾸고 $ rsp-> photos-> photo로 변경하는 것도 효과가 없었습니다. – rhodesjason

0

나는 혼자서 그것을 해결했습니다. 제목은 XML 요소의 속성이며 노드가 아니므로 객체 속성과 같은 배열보다는 액세스됩니다 (혼동되는 용어).

그래서 echo $photo['title'];입니다. 그것은 작동합니다.

관련 문제