我有一个文本文件,包含以下行
清单版本: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