не удалось загрузить внешнюю сущность (веб-сайт flickr) - PullRequest
1 голос
/ 07 марта 2012

Я пытаюсь получить данные с сайта Flickr, и после запуска php-кода он выдаёт мне две ошибки. 1) не удалось загрузить внешнюю сущность 2) В foreach указан неверный аргумент ()

Найдите ниже код php:

<?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; 
}
?>

См. Ниже выдержку из структуры xml:

<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>

1 Ответ

0 голосов
/ 07 марта 2012

simplexml_load_file ожидает имя файла или URL, но file_get_contents уже выбирает данные с данного URL.Поэтому передайте $url в simplexml_load_file или используйте simplexml_load_string

Edit: Также ваш цикл должен выглядеть следующим образом, см. Документацию simplexml.

foreach ($xml->photos->photo as $entry) {  
  echo $entry->attributes()->id;
  echo $entry->attributes()->owner;
  echo $entry->attributes()->title; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...