【问题标题】:preg_match_all stop code execution on live server (large file) [closed]preg_match_all 在实时服务器上停止代码执行(大文件)[关闭]
【发布时间】:2016-02-13 20:10:24
【问题描述】:

我想问一下是否有人遇到同样的问题或知道任何解决方法来解决它。

我有一个大文件 (15MB),其中包含我找到并读取的数组值。 在 xampp 上,带有 preg_match_all 的代码可以正常工作(对于大文件和小文件)。

在服务器上当前 PHP 版本:5.5.9 (2 vcpu 2GB ram) preg_match_all 停止执行代码(如果我用小文件测试它会给出正确的结果)。

【问题讨论】:

标签: php regex preg-match-all


【解决方案1】:

尝试使用:

ini_set('memory_limit','1024M');

在脚本的开头。

此外,如果您从浏览器调用脚本,请在该循环上打印一个空白区域以保持浏览器处于活动状态。

【讨论】:

  • 我使用 preg_match_all 所以没有任何循环。有一段时间我在 preg echo 文件数据之前放了,我认为这让浏览器保持活动状态并且它工作正常但后来(缓存可能?)再次停止工作
  • ini_set('memory_limit','1024M');已修复:)非常感谢!内存使用仅适用于该脚本运行对吗? (默认定义为我的初始化文件 128M)
  • 那 1024M 是内存限制(可能远小于该内存限制),如果需要,它将仅用于该正在运行的脚本并在它运行时使用。之后,它将被发送到操作系统进行回收(这意味着您可能会在缓冲区中看到它,但如果需要,它可以从任何其他软件中获取)。
猜你喜欢
  • 2020-07-02
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 2019-11-03
  • 2012-03-20
  • 2014-05-24
  • 2016-04-21
  • 2020-06-06
相关资源
最近更新 更多