用php处理大型压缩文件
我试图在我的服务器上同时压缩多个图像。 压缩文件的大小可以在250MB到750MB之间 我正在使用pclzip库 我使用共享主机,所以最大执行时间和内存限制是有限的。 我怎样才能解决这个问题?或者请告诉我其他的解决方案用php处理大型压缩文件,php,pclzip,Php,Pclzip,我试图在我的服务器上同时压缩多个图像。 压缩文件的大小可以在250MB到750MB之间 我正在使用pclzip库 我使用共享主机,所以最大执行时间和内存限制是有限的。 我怎样才能解决这个问题?或者请告诉我其他的解决方案 谢谢您是否尝试在脚本中使用设置时间限制(int$seconds) 请原谅伪代码,但是类似的东西 initialise the zip class foreach ( files in the directory as $idx => $name) { add $n
谢谢您是否尝试在脚本中使用
设置时间限制(int$seconds)
请原谅伪代码,但是类似的东西
initialise the zip class
foreach ( files in the directory as $idx => $name) {
add $name to the zip file;
// every 10 files zipped, reset the max_execution_time
if ( $idx > 0 && $idx % 10 == 0 ) {
set_time_limit ( 30 );
}
}
这将继续将最大执行时间重置为每压缩10个文件30秒
也许10是一个小数字,但你明白了
或者,您可以尝试将max_execution_time设置为0,就像这样,只在脚本顶部设置一次
set_time_limit( 0 );
也许这些操作太大,无法在共享主机上完成。这就是您在执行时间和内存使用方面有限制的原因-您不希望其他人的进程减慢您的操作速度…可能尝试以增量方式压缩文件,而不是“一次”压缩所有文件。是的,我尝试按照您的建议以增量方式压缩文件,即多个zip文件,而不是一个大的zip文件。但在这种情况下,脚本的最大执行时间也超过了我的服务器限制30秒。我的意思是每次向zip文件添加一个图像,而不是一次添加多个文件。是的,这样做了,但脚本在最大执行时间内失败。你有什么类似-1的建议吗。将应用程序托管到专用/虚拟服务器2。在其他共享主机中部署应用程序,我可以在其中增加脚本的最大执行时间。谢谢,我已经按照您的建议尝试过了。但问题是,当我联系主机的支持团队时,他们说我不能更改/更改他们的任何默认值。在这种情况下你有什么建议?选择其他可以设置这些值的主机还是使用专用/虚拟服务器更好?