我使用txt文件作为项目的数据库。我读了它,将它转换为带分隔符的数组,并处理数组(作为id,title,text ..)
但是现在,我将不得不在我的文本数据库中添加大块文本,并且我有点担心,及时,我的文件会变大,我会有内存问题,我的服务器提供商不高兴:)
到目前为止,我的想法是将我的数据库拆分为两个文件:一个带有id和文本,另一个带有id和标题 - 以及第一行保存的行:
第一个文件:
id|text
15|Lorem ipsum dolor sit amet, consectetur adipiscing elit...
第二档:
id|title|line
15|Lorem ipsum|2
..并找到一种方法来读取第一个(大)文件而不用将其解析为数组,只需转到我从第二个文件获取的行,然后然后将其解析为数组以将其与我的代码一起使用。
我的两个问题:
一,当我向文本文件追加一行时,我还没有找到(还)如何得到一个行号。一个想法是再次读取文件,并计算它的行,但我认为这不会帮助我的内存泄漏恐惧:))
二,即使我有行号,我的选择是逐行读取大文件,并在整数停在我的行时停止。这是我能做到的最佳方式吗?
感谢您的时间,我希望我的英语和PHP知识不足有道理:)
-
TL; DR:我想解析一个大的txt文件,并寻找帮助a)知道我向它添加内容时的行,b)去读取该行,而不读取所有文件。< / p>
答案 0 :(得分:0)
看看fgetcsv http://php.net/manual/en/function.fgetcsv.php
fgetcsv - 从文件指针获取行并解析CSV字段
数组fgetcsv(资源$ handle [,int $ length = 0 [,string $ delimiter =&#34;,&#34; [,string $ enclosure =&#39;&#34;&#39; [ ,string $ escape =&#34; \&#34;]]]])
设置分隔符=&#34; |&#34;,封闭并转义到&#34;&#34;