问题
我有一个将近2Mb的txt文件。它有包含时间、日期、名称和消息的行。我想在每一行上做一个正则表达式,所以我首先将文件读取到数组中。
$array1 = file('<file_name>');
文件中的每一行之间都有一条我想跳过的白线在stackoverflow上,我发现下面的代码女巫似乎还可以
array_values( array_filter($array1, 'trim'));
我的问题是这个过程需要很长时间
问题
- 在我制作数组之前,有没有一种方法可以在读取文件时跳过白线,这样我开始使用的数组的键就更少了
- 如果必须使用array_filter函数。Wich方式更快,最适合内存使用
$array2 = array_values( array_filter($array1));
或
$array2 = array_values( array_filter($array1));
unset($array1);
如果你想优化内存,你必须读取每一行并对其进行处理
- 打开文件
- 启动循环
- 读取行
- 工艺生产线
- 保存已处理的数据
- 结束循环
使用fopen、fread、fclose php函数。您可以在这里找到一些信息