【问题标题】:PHP ZipArchive TimeoutPHP ZipArchive 超时
【发布时间】:2015-04-08 11:23:44
【问题描述】:

我目前正在尝试找到一种解决方法,以防止 PHP 脚本在使用 ZipArchive 类创建 .zip 时超时。

通过使用 set_time_limit() 覆盖 php.ini 中的最大脚本执行时间,我已经成功地做到了这一点。但是,它不能保证将在运行脚本的服务器上的 php.ini 内关闭安全模式,并且我无权访问 php.ini 文件。有没有其他方法可以阻止脚本超时? ZipArchive 可以作为后台任务运行吗?

【问题讨论】:

    标签: php timeout zip ziparchive


    【解决方案1】:

    我认为超时不是问题。 这将通过 max_execution_time 的 ini_set 来解决。 但是内存限制是个问题。 我没有遇到关于 5.8G 目录的 zip 文件创建的超时问题。但我遇到了内存限制问题。

    【讨论】:

    • ini_set('max_execution_time', 600);这对我来说效果很好。
    【解决方案2】:

    试试

    ini_set('max_execution_time', 60); //60 seconds = 1 minute
    
    ini_set('max_execution_time', 0); //0=NOLIMIT
    

    但是,共享主机上可能存在限制,所以如果这些功能不能正常工作,请询问服务器的管理员。

    【讨论】:

      【解决方案3】:

      我也在尝试解决这个问题,set_time_limit 对安全模式下的共享主机没有好处,或者在服务器上禁用。

      我正在使用 Ajax 客户端调用 PHP 来逐步处理归档,但是它带来了一些新问题。脚本超时和某种“检查点”,因此我可以继续操作。

      所以我的建议是使用 ajax/客户端实现来点击 php 来完成工作,因为知道脚本可能无法在一次调用中完成,但可能需要 N 次调用,尽管 PHP 中的操作可能需要足够长的时间来使脚本超时您仍然可以输入逻辑来检查经过的时间并尝试在超时之前保存状态并在客户端中涵盖两种情况以进行超时/手动退出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 2016-07-17
        • 1970-01-01
        • 2020-09-05
        相关资源
        最近更新 更多