我制作了一个代码来从网站压缩400个文件,但是当我打开它时,它需要花费很多时间(这没关系),但是如果它太长了,php文件就会停止工作。
我想如何在没有网站崩溃的情况下压缩4000个文件?也许我需要创建一个进度条?
嗯......帮帮忙? :)答案 0 :(得分:1)
长时间工作(如压缩4000个文件,发送电子邮件......)不应该在PHP脚本中完成,这将使用户的浏览器等待。
您的用户可能会取消加载该页面,即使他们没有这样做,也很难在长时间内锁定apache线程。
在apache之外设置一个工作池,以异步方式进行这种工作通常是要走的路。看看RabbitMQ和Celery等工具
答案 1 :(得分:0)
我认为您应该查看PHP设置的时间限制或max_execution_time属性:
ini_set('max_execution_time', 300);
// or if safe_mode is off in your php.ini
set_time_limit(0);
尝试找到压缩所有捆绑包的合理设置,并相应地设置值。
PHP解释器在其自己的执行时间内受到限制,默认为某个值。这就是它突然停止的原因。如果你在php脚本的开头更改了那个设置,它会更好用,试试吧!
您也可以在cli
模式下调用php可执行文件来处理该过程...使用shell_exec
等函数
答案 2 :(得分:0)
在PHP安装中,您拥有在php.ini文件中定义的指令input
。该指令设置任何PHP脚本的最大执行时间,因此您可能希望增加它或将其设置为无限(无时间限制)。你有两种方法:你可以修改你的php.ini但它并不总是可用。您还可以使用set_time_limit功能或ini_set功能。请注意,根据您的主机服务,您可能无法执行此操作。