file_get_contents失败,“getaddrinfo failed:没有与hostname关联的地址”

时间:2015-10-12 16:30:05

标签: php dns file-get-contents

我正在尝试从其他主机获取该页面。我按照hph手册说:

    $page = file_get_contents('http://www.example.com/');
    echo $page;

但它失败了,在apache日志中我得到以下内容:

[Mon Oct 12 18:58:47.676454 2015] [:error] [pid 2971] [client 127.0.0.1:49434] PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/digest/ftry.php on line 2
[Mon Oct 12 18:58:47.704659 2015] [:error] [pid 2971] [client 127.0.0.1:49434] PHP Warning:  file_get_contents(http://www.example.com/): failed to open stream: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/html/digest/ftry.php on line 2

在试图找出失败的原因时,我检查了nslookup说的内容。当我运行nslookup http://www.example.com/时,它会回答类似的问题:

nslookup http://www.example.com/
Server:         94.242.57.130
Address:        94.242.57.130#53

** server can't find http://www.example.com/: NXDOMAIN

当我从域名中删除http://时,它可以正常工作,返回ip。但是当我尝试使用file_get_contents而没有http://的文件时,它会在本地文件系统中查找该文件(它应该是这样的文件)。

我已在本地和主要级别检查phpinfoallow_url_fopenOn。我已将resolv.conf中的名称服务器设置为94.242.57.130(最近的公开dns)。

1 个答案:

答案 0 :(得分:0)

while ((*beg = (char) toupper(*beg))) beg++; 似乎已禁用allow_url_fopen,这就是php.ini无效的原因。 请尝试使用curl代替:

file_get_contents