问题描述:
只能获得本地文件,还有域名是IP 的地址, 域名的方式获得为空
例子:
1.获得本地文件
file_get_contetns('../1.txt');//可以获得
2.获得IP地址的内容
file_get_contents('http://1.1.1.1');//可以获得
3.域名形式内容不能获得
file_get_contents('http://www.baidu.com');//获得内容为空
4.如果php 代码换成 curl形式可以获得
环境:
ubuntu:13.10
php:PHP 5.3.17
allow_url_fopen = on 是打开的
safe_mode:disabled
在命令行下面:
curl http://www.baidu.com 是没问题的
请大家帮忙分析下问题出在什么地方?
补充一点:
如果我把域名host 指向 127.0.0.1 也没办法获得内容
读取远程用curl稳定且高效 读取本地文件用filegetcontents
题主可以读读PHP手册
file_get_contents
函数下的用户评论,会对你解决问题有帮助。举几个栗子:
file_get_contents()
不是不能用,而是相比健壮成熟的cURL,file_get_contents
的稳定性,错误管理,还有强大的请求控制等功能都没有,所以这里,大家都建议用cURL。至于为什么IP可以获得而域名获得不了,或许和DNS有关。不过应该可以确定的是你的网络问题
一个可能性是 DNS 的问题
一个可能性是改了一些设置后没有重启相应进程
还有一个可能,也是最可能的,和 php 的编译参数有关:因为我在试着查找这个问题的资料的时候无意间看到了 http://stackoverflow.com/questions/4172860/file-get-contents-returns-empty-string,里面提到,安装 php 时不能加上
--with-curlwrapper
这个编译参数。检查防火墙iptables设置
非常不理解,为什么要用
file_get_contents
这么不稳定的方式读取远程文件。如果url没错,考虑下文件权限和是否可读的问题