在php

时间:2017-11-25 20:16:04

标签: php arrays flat-file

我使用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>

1 个答案:

答案 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;

相关问题