Php 无声地包含/要求失败

Php 无声地包含/要求失败,php,http,tomcat,include,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,因为它无法通过internet访问) 然而,使用iclude语句PHP尝试大约20秒来包含文件,然后在include语句之

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

include 'http://123.123.123.123:8080/servlet/statemodel'
问题是,servlet需要大约35秒才能加载

如果我访问
http://123.123.123.123:8080/servlet/statemodel
在我的浏览器中,一切正常(我修改了IP,因为它无法通过internet访问)

然而,使用iclude语句
PHP
尝试大约20秒来包含文件,然后在include语句之后继续执行代码

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

包含是否有超时?为什么没有错误消息

也许tomcat实际上发送了数据(http头),但PHP只需等待大约20秒就可以看到一些内容了


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

您可以使用以下选项设置超时:

ini_set("default_socket_timeout", $value);
但是默认值是60秒,这应该足够了

也许您可以通过以下方式找到更多信息:

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

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

在您的
php.ini
设置中:
allow\u url\u include=1
?错误报告(E\u ALL);ini_集('display_errors','1');怎么样?;-)你想包括什么?什么文件类型?错误报告设置为E_ALL ^E_NOTICE。allow\u url\u fopen设置为On。未设置允许\u url\u包含。但是,由于它在servlet响应更快时起作用,我认为这不是问题所在issue@AurimasLičkus URL返回text/html。我还尝试了readfile()而不是include,这也有同样的效果。尽管如此,我还是要尝试默认的\u套接字\u超时设置,如果错误报告E\u ALL提供了更多信息。谢谢