2016-02-13 99 views
1

我想问问是否有人遇到同样的问题或知道任何解决方法来解决它。preg_match_all在服务器上执行停止代码(大文件)

我有一个很大的文件(15MB),我找到并读取它们的数组值。 在xampp上,preg_match_all的代码正常工作(适用于大文件和小文件)。

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

+4

请参阅http://stackoverflow.com/questions/11315879/php-preg-match-all-100-mb-file,也https://bytes.com/topic/php/answers/7996-preg_match-_all -big-strings –

+0

关于php.ini和webserver,你对xampp和你的vps有相同的确切配置吗?你有任何PHP日志错误? – peixotorms

回答

2

尝试使用:

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

在脚本的开始。

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

+0

我使用preg_match_all,所以没有任何循环。一段时间以前,我在preg回应文件数据,我认为保持大酒杯活着,它工作正常,但后来(缓存可能?)停止再次工作 – iMMuNiTy

+0

ini_set('memory_limit','1024M');已修复它:)非常感谢你! 内存使用情况将仅适用于该脚本正在运行的权利? (默认值是我的ini fule 128M) – iMMuNiTy

+1

1024M是内存限制(可能比这少得多),并且如果需要,它将被使用,仅用于该运行脚本并在运行时。之后,它将被发送到操作系统进行回收(也就是说,您可能会在缓冲区中看到它,但如果需要,它可以从任何其他软件中获得)。 – peixotorms