在 php 中读取大型 txt 文件
Read a large txt file in php
我正在使用一个 txt 文件作为项目的数据库。我读了它,将它转换为带有分隔符的数组,并处理数组(如 id、标题、文本..)
但是现在,我将不得不在我的文本数据库中添加大块文本,我有点担心,我的文件会随着时间的推移变得很大,而且我会遇到内存问题,而且我的服务器供应商不会高兴的:)
到目前为止,我的想法是将我的数据库拆分为两个文件:一个包含 ID 和文本,第二个包含 ID 和标题 - 以及第一行保存的行:
第一个文件:
id|text
15|Lorem ipsum dolor sit amet, consectetur adipiscing elit...
第二个文件:
id|title|line
15|Lorem ipsum|2
..并找到一种方法来读取第一个(大)文件 而不 将其解析为数组,只需转到我从第二个文件中获取的行,然后 然后 将它解析为数组以便在我的代码中使用它。
我的两个问题:
第一,当我向文本文件追加一行时,我还没有找到(还)如何在 return 中获取行号。一个想法是再次读取文件,并计算它的行数,但我认为这无助于我对内存泄漏的恐惧:)
二,即使我有行号,我的选择是逐行读取大文件,当整数停在我的行时停止。这是我能做到的最好方法吗?
感谢您抽出宝贵的时间,我希望我糟糕的英语和 PHP 知识有任何意义:)
--
TL;DR: 我想解析一个大的 txt 文件,并寻求帮助 a) 当我向它附加一些内容时知道该行,以及 b) 去阅读该行,而不是阅读所有文件.
看看fgetcsv http://php.net/manual/en/function.fgetcsv.php
fgetcsv — 从文件指针获取行并解析 CSV 字段
array fgetcsv (资源 $handle [ int $length = 0 [ string $delimiter = "," [ string $enclosure = '"' [ string $escape = "\" ]]]] )
设置定界符=“|”,围栏和转义符为“”
我正在使用一个 txt 文件作为项目的数据库。我读了它,将它转换为带有分隔符的数组,并处理数组(如 id、标题、文本..)
但是现在,我将不得不在我的文本数据库中添加大块文本,我有点担心,我的文件会随着时间的推移变得很大,而且我会遇到内存问题,而且我的服务器供应商不会高兴的:)
到目前为止,我的想法是将我的数据库拆分为两个文件:一个包含 ID 和文本,第二个包含 ID 和标题 - 以及第一行保存的行:
第一个文件:
id|text
15|Lorem ipsum dolor sit amet, consectetur adipiscing elit...
第二个文件:
id|title|line
15|Lorem ipsum|2
..并找到一种方法来读取第一个(大)文件 而不 将其解析为数组,只需转到我从第二个文件中获取的行,然后 然后 将它解析为数组以便在我的代码中使用它。
我的两个问题:
第一,当我向文本文件追加一行时,我还没有找到(还)如何在 return 中获取行号。一个想法是再次读取文件,并计算它的行数,但我认为这无助于我对内存泄漏的恐惧:)
二,即使我有行号,我的选择是逐行读取大文件,当整数停在我的行时停止。这是我能做到的最好方法吗?
感谢您抽出宝贵的时间,我希望我糟糕的英语和 PHP 知识有任何意义:)
--
TL;DR: 我想解析一个大的 txt 文件,并寻求帮助 a) 当我向它附加一些内容时知道该行,以及 b) 去阅读该行,而不是阅读所有文件.
看看fgetcsv http://php.net/manual/en/function.fgetcsv.php
fgetcsv — 从文件指针获取行并解析 CSV 字段
array fgetcsv (资源 $handle [ int $length = 0 [ string $delimiter = "," [ string $enclosure = '"' [ string $escape = "\" ]]]] )
设置定界符=“|”,围栏和转义符为“”