【发布时间】:2019-09-19 14:02:39
【问题描述】:
我有一个 .txt 文件,里面有很多行,每行都以方括号中的唯一 ID 开头:
[13] Text text text text text text text
[23] Text text text text text text text
[65] Text text text text text text text
[07] Text text text text text text text
[66] Text text text text text text text
我使用 php 打开并检索文本文件内容:
$file = 'path_to_file/file.txt';
$handle = fopen($file, "r");
$content = fread($handle, filesize($file));
fclose($handle);
$search_id = '[65]';
我现在希望在$content 中找到以我正在搜索的 id ($search_id) 开头的单行,并仅检索该行。方括号中的 id(后跟空格)将始终启动行。检索该行时,我希望将其去掉这个 id,因为我只需要没有 id 的文本行。
我的问题是:
- 如何最有效地搜索此文件?(id 总是只会出现一次)
- 如何收集包含搜索键的行?以及
- 如何删除前导 id 和括号以仅检索文本行?
【问题讨论】:
-
文件是经常变化还是静态的?
-
@vivek_23 它可能会不时手动更改。运行此 php 代码的页面应该在每次运行时简单地检索文本行
-
好的,目标是快速搜索吗?
-
如果你想快速检索,那么在你的数据库中使用 ID 列索引。如果您不喜欢 DB 方式,恐怕,逐行处理似乎是唯一的方式。