PHP:循环遍历文本文件并隔离特定"起点"的行

Mes*_*ika 1 php text loops for-loop

我试图在一些文本文件中减少一些编辑时间,其中大约有10,000行文本,但我只需要大约200或者一些.

该文本文件依赖于几乎特定的模式,但它从时间偏离到时间,但我的"焦点",以便选择正确的路线,以保持是,该行始终开头:z3455,然后有一个变量之后,例如:z3455 http://url.com/data1/data1.1/data1.3/(342kb )

我有一个算法来捕获URL和内容,但现在我需要一些方法来遍历文本文件,删除所有行,除了不与开始z3455所以他们彼此的下方列在一起,然后"推"出来.

我已经在PHP中尝试了不同的方法,但似乎无法找到正确的功能.我可以"隔离"特定的行号但是当它偏离时,我不能完全使用这种方法.

我希望有人可以帮助我,无论是提供代码还是让我朝着正确的方向努力解决这个问题.

提前致谢

真诚
- 梅斯蒂卡

Mar*_*c B 6

$in = fopen('file.txt', 'rb')
$out = fopen('filtered.txt', 'wb+')
while($line = fread($in)) {
    if (preg_match('/^z3455 http.*$/', $line)) {
         fwrite($out, $line);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,如果你是从命令行运行它,你也可以跳过PHP并使用grep,效率会更高:

$ grep '^z3455 http' file.txt > filtered.txt
Run Code Online (Sandbox Code Playgroud)