nginx+php5.3.20下,file_get_contents无法使用,求助

该昵称很风骚 2013-01-26 04:49:31
file_get_contents外网的url完全没问题,但是如果要获取本机的url(比如http://localhost/index.php)就会报下面的错:
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while reading response header from upstream, client: 124.2xx.xxx.xxx, server: www.xxx.com, request: "GET /index.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.xxx.com"
在网上找了这么一篇文章,http://www.codesky.net/article/201106/174247.html 但不知在Windows下面如何操作,或者有其他办法么,求助了
...全文
493 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dc_boy 2013-11-19
  • 打赏
  • 举报
回复
抓取网页用这个函数就好了。要把curl_init()这个扩展添加了才能使用
dc_boy 2013-11-19
  • 打赏
  • 举报
回复
function __curl_get($url){ /*print_r(phpinfo());exit;*/ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); curl_close($ch); return $ret; }
adan_user 2013-09-22
  • 打赏
  • 举报
回复
相同问题,请教
wodecuoshi230 2013-07-10
  • 打赏
  • 举报
回复
遇到相同的问题。 请教楼主现在有解吗
该昵称很风骚 2013-01-29
  • 打赏
  • 举报
回复
引用 8 楼 chinaguo1986 的回复:
也遇到同样问题 和其他人对比 感觉 是 这个的问题, mark 坐等高手
兄台也是想获取本地某个url的内容?我其实是用该功能用来生成静态的,不知道兄台用来做什么,呵呵,有点好奇。 但是我用其他办法解决了,就是用ajax请求本地的url,效果也是一样的。
chinaguo1986 2013-01-29
  • 打赏
  • 举报
回复
也遇到同样问题
和其他人对比 感觉 是
这个的问题,
mark 坐等高手
  • 打赏
  • 举报
回复
bug?没这个说法吧。检查你的代码。 首先 http://localhost/index.php 里用简单的代码,比如 echo "hello world"; 是不是简单的代码也是这种情况吗? 其次,用chrome或者firebug,看一下request header的情况,以及浏览器的cookies。或者不用浏览器测试,用windows自带的命令提示符测试。 运行 -> cmd 回车 -> php c:\www\index.php 回车。看看dos界面下是否返回结果?
该昵称很风骚 2013-01-26
  • 打赏
  • 举报
回复
引用 3 楼 PhpNewnew 的回复:
修改hosts 弄个域名解析到本地 使用域名方式访问就可以解决了吧 或者直接ip地址试看看
是的,我也正是这样啊
黄袍披身 2013-01-26
  • 打赏
  • 举报
回复
修改hosts 弄个域名解析到本地 使用域名方式访问就可以解决了吧 或者直接ip地址试看看
该昵称很风骚 2013-01-26
  • 打赏
  • 举报
回复
引用 5 楼 changjay 的回复:
检查一下php.ini里,是不是 allow_url_fopen = 1? 另外尝试用include替换file_get_contents,获取localhost的页面。
allow_url_fopen确定是开启的 试过了用include,居然很卡很卡,然后在超时的那一刻达到了我想要的结果,但终究不是我想要的:按理说我要获取的内容应该在一秒钟以内就可以搞定。 虽然目前已找到其他办法解决,但仍然表示疑惑,想不通为什么,难道是nginx+php5.3在Windows下的bug?
该昵称很风骚 2013-01-26
  • 打赏
  • 举报
回复
也试着换成curl,依旧无效,如:

		$ch = curl_init();
		$timeout = 5;
		curl_setopt ($ch, CURLOPT_URL, 'http://localhost/index.php');
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
		$con = curl_exec($ch);
		curl_close($ch);
注:url是外网的完全没问题,只要是系统服务器和url所在服务器是同一个,就出不来,崩溃中
该昵称很风骚 2013-01-26
  • 打赏
  • 举报
回复
试着给那函数加了时间,也无效,比如:

    <?php
    $ctx = stream_context_create(array(
       'http' => array(
           'timeout' => 1 //设置一个超时时间,单位为秒
           )
       )
    );
    file_get_contents("http://example.com/", 0, $ctx);
    ?>
  • 打赏
  • 举报
回复
检查一下php.ini里,是不是 allow_url_fopen = 1? 另外尝试用include替换file_get_contents,获取localhost的页面。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧