使用file()不返回任何内容 - PHP

时间:2009-11-22 13:46:01

标签: php file timeout

我目前正在为我的大学广播电台用PHP编写一个小应用程序。它基本上从状态页面(http://www.address.com:8000/status.xsl)获取侦听器计数,并每分钟将其放入数据库中。

现在,当我的家用机器运行时,脚本似乎工作正常。我从该状态页面中重新获取信息没有问题。但是,当我将它加载到我的共享主机包时,它似乎超时。我尝试过使用域名和IP在google.com等其他网站上使用file()并且工作正常。

我真的很困惑我应该检查什么。我看不到php.ini中文件()的超时设置的任何具体参考,以及它与其他网站一起工作的事实,它让我认为大学正在阻止它。但是,如果是这样的话,为什么它会在家里工作?

有什么想法吗?

感谢。

4 个答案:

答案 0 :(得分:1)

确保主机不是阻止fopen调用。

我会尝试使用curl来获取远程网页,因为大多数主机都允许它来获取外部网页。

答案 1 :(得分:1)

你可能会从cUrl获得更多的里程数,它可以完成你想要达到的同样的工作但是专门为这项工作设计(加载更多设置)。系统管理员可以对file()函数进行一些限制,阻止您以这种方式使用此文件系统功能。

通过浏览到以<?php phpinfo(); ?>为内容的文件来安装检查卷曲。

祝你好运

答案 2 :(得分:1)

如果您希望能够通过URL获取文件,那么您的PHP配置必须启用allow_url_fopen指令。它不能在运行时设置,因此您必须直接编辑 php.ini 文件。

答案 3 :(得分:0)

大学防火墙阻止访问HTTP或HTTPS以外的端口是很常见的。因此端口8000可能是问题所在。