simplexml_load_file不工作";php_network_getaddresses:失败:名称或服


simplexml_load_file not working "php_network_getaddresses: failed: Name or service not known"

我最近才开始收到这些警告,我不知道为什么,也不知道如何修复它。更让我困惑的是,它以前还在工作,我开始处理另一个类,现在我开始收到这个错误。。。

im使用linux fedora&网络服务器的apache。

警告:simplexml_load_file(([函数.simplexml加载文件]:php_network_getaddresses:getaddrinfo失败:中的名称或服务未知GetImagesFlickr.php在线17

警告:simplexml_load_file(http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=9eb9f5e5fb72d6d2fed06cf4e64ba9b&media=照片&per_page=50&text=fgdc([function.simplexml加载文件]:失败打开流:php_network_getaddresses:getaddrinfo失败:中的名称或服务未知GetImagesFlickr.php在线17

警告:simplexml_load_file(([function.simplexml加载文件]:I/O警告:无法加载外部实体"http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=9eb9f5e5fb72d6d2fed06cf4e64ba9b&media=照片&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;
    }
}
?>

您有网络/DNS问题,而不是PHP问题。您的机器似乎无法解析api.flickr.com的IP。

"su"到您的web服务器用户,并尝试在那里解析名称,即

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