Php 用一个非常大的文件的内容制作一个数组

Php 用一个非常大的文件的内容制作一个数组,php,arrays,fopen,file-get-contents,Php,Arrays,Fopen,File Get Contents,我有一个16GB的文件。我正在尝试制作一个按直线向下拆分的数组。现在,我正在使用带有preg_split的file_get_内容,使用以下命令 $list = preg_split('/$\R?^/m', file_get_contents("file.txt)); 但是,我得到以下错误: 致命错误:第35行/var/www/html/mysite/script.php中允许的10695475200字节内存已耗尽(尝试分配268435456字节) 我不想用太多的内存。我知道您可以使用fopen

我有一个16GB的文件。我正在尝试制作一个按直线向下拆分的数组。现在,我正在使用带有preg_split的file_get_内容,使用以下命令

$list = preg_split('/$\R?^/m', file_get_contents("file.txt));
但是,我得到以下错误:

致命错误:第35行/var/www/html/mysite/script.php中允许的10695475200字节内存已耗尽(尝试分配268435456字节)

我不想用太多的内存。我知道您可以使用fopen对其进行缓冲,但我不确定如何使用文件内容创建一个数组,并以一行作为分隔符


这个问题并没有解决如何使用preg_split(类似于我上面所做的)从文件内容生成数组的问题。

16GB是巨大的。你根本不应该使用这种方法。您打算如何处理这些数据?如果您可以将其插入数据库,然后执行您想要执行的操作/过滤/排序/等等,那就更好了。该文件是一个URL列表,脚本将遍历整个文件的每个URL,并从每个URL中获取一些信息。客户需要这样做,并需要所有的数据之前,我得到支付。可能的重复检查的答案非常类似的问题在我的评论上面。您希望基本上逐行读取文件,而不是一次加载所有数据。我如何逐行读取文件,并从中创建一个大数组?因为现在这是一个foreach循环。请看我上面的文章,我非常了解输出缓冲区,但我确实需要创建这个大数组。我需要一个替代方案,它将完全像我的代码一样(在中小型文件上运行良好)在更大的文件上运行。16GB是巨大的。你根本不应该使用这种方法。您打算如何处理这些数据?如果您可以将其插入数据库,然后执行您想要执行的操作/过滤/排序/等等,那就更好了。该文件是一个URL列表,脚本将遍历整个文件的每个URL,并从每个URL中获取一些信息。客户需要这样做,并需要所有的数据之前,我得到支付。可能的重复检查的答案非常类似的问题在我的评论上面。您希望基本上逐行读取文件,而不是一次加载所有数据。我如何逐行读取文件,并从中创建一个大数组?因为现在这是一个foreach循环。请看我上面的文章,我非常了解输出缓冲区,但我确实需要创建这个大数组。我需要一个替代方案,它将完全按照我的代码所做的(在中小型文件上运行良好)来处理更大的文件。