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