我已经读过" preg_match_all"不是用于解析大文件,但我需要这样做。我增加了:
pcre.backtrack_limit=1000000000
pcre.recursion_limit=1000000000
我的PHP memory_limit设置为5000M,脚本在0.2秒内仍然没有任何错误或异常结束......
唯一的解决方案是将100M文件拆分为100个小1M文件吗?
感谢您的帮助
答案 0 :(得分:4)
考虑使用更适合处理大量数据的命令行工具。
grep,sed,awk或其中的一些组合。
答案 1 :(得分:3)
根据您的code我建议你这样做:
将变量$data
设置为空字符串
将变量$work
设置为空字符串;读取数据块并将此字符串附加到$data
使用正则表达式#^(.*?)(<tr>\n(?!.*<tr>\n).*)$#
将$data
拆分为$work
和$data
查找$work
在数据可用的情况下返回第2点
查找$data