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

时间:2012-01-23 15:20:15

标签: php

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

  

清单 - 版本:1.0
  MIDlet-Vendor:Croco Gamez
  MIDlet版本:1.0.0
  MIDlet-1:Quan,/ imb.png,CGTQ
  MicroEdition-Configuration:CLDC-1.0
  创建者:1.4.2(Sun Microsystems Inc.)
  MIDlet-Icon:/ icon.png
  MIDlet-名称:全
  MicroEdition-Profile:MIDP-2.0

我想找到以MIDlet-1开头的行和从此行末尾删除段落 请帮帮我

2 个答案:

答案 0 :(得分:1)

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

file('thefile.txt', FILE_IGNORE_NEW_LINES)

要查找所需的行,您可以遍历每一行,并在发现所需的行时停止,或使用其他函数搜索数组。 KristerMichael分别显示了这两个问题。

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

答案 1 :(得分:0)

Read the file into lines然后使用 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