我目前正在为我的大学广播电台用PHP编写一个小应用程序。它基本上从状态页面(http://www.address.com:8000/status.xsl)获取侦听器计数,并每分钟将其放入数据库中。
现在,当我的家用机器运行时,脚本似乎工作正常。我从该状态页面中重新获取信息没有问题。但是,当我将它加载到我的共享主机包时,它似乎超时。我尝试过使用域名和IP在google.com等其他网站上使用file()并且工作正常。
我真的很困惑我应该检查什么。我看不到php.ini中文件()的超时设置的任何具体参考,以及它与其他网站一起工作的事实,它让我认为大学正在阻止它。但是,如果是这样的话,为什么它会在家里工作?
有什么想法吗?
感谢。
答案 0 :(得分:1)
确保主机不是阻止fopen调用。
我会尝试使用curl来获取远程网页,因为大多数主机都允许它来获取外部网页。
答案 1 :(得分:1)
你可能会从cUrl获得更多的里程数,它可以完成你想要达到的同样的工作但是专门为这项工作设计(加载更多设置)。系统管理员可以对file()函数进行一些限制,阻止您以这种方式使用此文件系统功能。
通过浏览到以<?php phpinfo(); ?>
为内容的文件来安装检查卷曲。
答案 2 :(得分:1)
如果您希望能够通过URL获取文件,那么您的PHP配置必须启用allow_url_fopen指令。它不能在运行时设置,因此您必须直接编辑 php.ini 文件。
答案 3 :(得分:0)
大学防火墙阻止访问HTTP或HTTPS以外的端口是很常见的。因此端口8000可能是问题所在。