Файл simplexml_load_file не работает "php_network_getaddresses: fail: имя или служба неизвестна" - PullRequest
0 голосов
/ 03 июля 2011

Я начал получать эти предупреждения совсем недавно, я не уверен, почему, и я не знаю, как это исправить. Что меня смущает больше, это работало раньше, я начал работать над другим классом, и теперь я начинаю получать эту ошибку ...

я использую linux fedora & apache для веб-сервера.

Предупреждение: simplexml_load_file () [Function.simplexml-нагрузка файл]: php_network_getaddresses: getaddrinfo Ошибка: имя или служба не известны в GetImagesFlickr.php по линии 17

Внимание: simplexml_load_file (http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=9eb9f5e5fb72d6d2fed06cf4e64ba9bb&media=photos&per_page=50&text=fgdc) [function.simplexml-load-file]: не удалось открыть поток: php_network_getaddresses: getaddrinfo Ошибка: имя или служба не известны в GetImagesFlickr.php по линии 17

Предупреждение: simplexml_load_file () [function.simplexml-load-file]: ввод / вывод предупреждение: не удалось загрузить внешний юридическое лицо «http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=9eb9f5e5fb72d6d2fed06cf4e64ba9bb&media=photos&per_page=50&text=fgdc" в /var/www/html/yahoo/GetImagesFlickr.php по линии 17

<?php
class GetImagesFlickr
{
    const API_KEY = "***"; // Flickr api key
    const MAX_RESULTS_RETURNED = 50; // Max results returned in search

    private $url; // Flickr webservice url

    public function __construct () 
    {
        $this->url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=".self::API_KEY."&media=photos&per_page=".self::MAX_RESULTS_RETURNED;
    }

    public function getImages ($search_term)
    {
        // Perform search and store xml data
        $xml_data = simplexml_load_file("{$this->url}&text={$search_term}");

        $search_results = array();

        // Go through xml data and store to array
        foreach ($xml_data->photos->photo as $current_photo)
        {
            $id = $current_photo['id'];
                        $title = $current_photo['title'];
            $farm = $current_photo['farm'];
            $secret = $current_photo['secret'];
            $server = $current_photo['server'];
            $url = "http://farm{$farm}.static.flickr.com/{$server}/{$id}_{$secret}.jpg";

            $complete_photo = array (
                'id'     => $id,
                                'title'  => $title,
                'farm'   => $farm,
                'secret' => $secret,
                'server' => $server,
                'url'    => $url
            );

            $search_results[] = $complete_photo;
        }

        return $search_results;
    }
}
?>

1 Ответ

4 голосов
/ 03 июля 2011

У вас проблема с сетью / DNS, а не проблема с PHP.Похоже, что ваш компьютер не может разрешить IP-адрес api.flickr.com.

"su" пользователю вашего веб-сервера и попытаться разрешить имя там, то есть

$ sudo bash
  # get root
$ su - apache
  # we're the apache user now
$ ping api.flickr.com
...