PHP如何从文本文件中查找以单词开头的行


PHP How to find a line begining with a word from a text file

我有一个文本文件,包含以下行

清单版本:1.0
MIDlet供应商:Croco Gamez
MIDlet版本:1.0.0
MIDlet-1:Quan,/icon.png,CGTQ
MicroEdition配置:CLDC-1.0
创建人:1.4.2(太阳微系统股份有限公司)
MIDlet图标:/Icon.png
MIDlet名称:Quan
MicroEdition配置文件:MIDP-2.0

我想找到以MIDlet-1开头的行,并从该行末尾删除段落请帮助我

问题似乎是file()函数包含每行的尾随换行符。然而,这只是默认行为,我们可以通过使用特殊的FILE_IGNORE_NEW_LINES标志来指示函数不要包含它们。

file('thefile.txt', FILE_IGNORE_NEW_LINES)

要找到所需的行,可以在每个行上循环,并在发现所需行时停止,或者使用另一个函数在数组中搜索。Krister和Michael已经分别展示了这两个场景。

$lines   = file('thefile.txt', FILE_IGNORE_NEW_LINES);
$matched = preg_grep('/^MIDlet-1/', $lines);
foreach ($matched as $line) {
    echo $line;
}

将文件读入行,然后使用PHP preg_grep()

使用这样的正则表达式模式:

/^MIDlet-1.*$/

然后使用array_diff()来获得现在仅包含您想要的内容。如果需要,将行写回文件。

示例:

$lines = file ("file-to-read.txt");
$matchedLines = preg_grep ('/^MIDlet-1.*$/', $lines);
$lines = array_diff ($lines, $matchedLines);
// do something with lines which doesn't have your MIDlet data