I am trying to retrieve data from the Flickr website and after running the php code it gives me two errors. 1) failed to load external entity 2) Invalid argument supplied for foreach()
Find below the php code:
<?php
$url = file_get_contents("http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=ff8c4c178209865b1ac5ee3f2d492de0&lat=51.5424&lon=-0.1734&radius=2&page=2&per_page=200&text=houses");
$xml = simplexml_load_file($url);
foreach ($xml->photo as $entry){
echo $entry->id;
echo $entry->owner;
echo $entry->title;
}
?>
See below an excerpt of the xml structure:
<rsp stat="ok">
<photos page="2" pages="6" perpage="200" total="1199">
<photo id="476179009" owner="55662771@N00" secret="cafd39b094" server="219" farm="1" title="Seeing the Sun Going Down" ispublic="1" isfriend="0" isfamily="0"/>
<photo id="5858562848" owner="40837632@N05" secret="19c083483f" server="5154" farm="6" title="Lords - June 2011 - E v SL - Rangana Herath Delivers" ispublic="1" isfriend="0" isfamily="0"/>
</photos>
</rsp>
simplexml_load_file
expects an filename or URL, but file_get_contents
already fetches the data from the given URL. So either pass $url
to simplexml_load_file
or use simplexml_load_string
Edit: Also your loop should look like this, refer to the simplexml documentation.
foreach ($xml->photos->photo as $entry) {
echo $entry->attributes()->id;
echo $entry->attributes()->owner;
echo $entry->attributes()->title;
}