我们Web应用程序的PHP页面有一个相当复杂的查询。在生产网站上,这大约需要 20 秒才能完成,然后显示结果。我的本地桌面上运行了该站点的测试版本。当我直接在 PGAdmin 中运行 (Postgres) 查询时,大约需要 3 分钟才能完成。
所以我的桌面很慢 - 现在不是真正的问题。但是,PHP 会停止加载页面并且不显示任何结果。也不会显示应在结果后立即显示的纯文本。搜索解决方案,我发现我可以在页面本身上设置 PHP 的max_execution时间。我在页面的第一行使用以下代码执行此操作:
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
这没有区别。页面加载在 6 秒后停止。我该怎么做才能显示结果?
使用 set_time_limit()
您应该阅读此函数的文档,其中说:警告:当 PHP 在安全模式下运行时,此函数不起作用。除了关闭安全模式或更改 php.ini 中的时间限制外,没有其他解决方法。
因此,请确保您的 PHP 没有在安全模式下运行,否则将无法设置或修改脚本执行时间。