包含/要求默默地发挥作用

时间:2012-09-11 08:06:16

标签: php http tomcat include

在我的代码中,我有一个include语句,它从外部URL加载代码,如下所示:

include 'http://123.123.123.123:8080/servlet/statemodel'

问题是,servlet需要大约35秒才能加载。

如果我在浏览器中访问http://123.123.123.123:8080/servlet/statemodel,一切正常(我修改了IP,因为无论如何都无法通过互联网访问)。

然后使用iclude语句PHP尝试包含该文件大约20秒,然后继续使用include语句后的代码。

没有错误消息。使用require也不会带来错误信息。

包括超时吗?为什么没有错误信息?

也许tomcat实际上发送数据(http-header),但PHP只等待大约20秒才能跟进一些内容?

我可以选择更改此超时吗?

1 个答案:

答案 0 :(得分:5)

您可以使用此设置超时:

ini_set("default_socket_timeout", $value);

但是默认值是60秒,这应该足够了。

也许你可以找到更多:

error_reporting(E_ALL);
ini_set("display_errors", 1);

IMO最干净的解决方案是在提供PHP脚本的HTML后,使用AJAX请求加载servlet的内容。这样,用户可以获得快速结果,并且可以向他显示正在加载更多内容。