2012-01-23 46 views
-2

我有一个文本文件与以下几行字beginingPHP如何找到一条直线从一个文本文件

清单-版本:1.0
的MIDlet-卖方:鳄鱼加梅斯
的MIDlet-版本: 1.0.0
的MIDlet-1:全,/icon.png,CGTQ
MicroEdition-配置:CLDC-1.0
创建-通过:1.4.2(Sun微系统公司)
的MIDlet-图标:/图标。 png
的MIDlet-名称:全
MicroEdition-简介:MIDP-2.0

我想找到行开始MIDlet-1,并从该行的末尾删除款 请帮我

+0

“删除段落”是什么意思?您是否想要删除CR/LF行结尾? – halfer

+0

我应该将“下线词”称为什么?请帮助 –

+0

我从来没有听说过它叫“下线词”,但我希望你的意思是“回车”或“换行符”:) – halfer

回答

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 
+0

我想回应MIDlet-1:Quan,/icon.png,CGTQ,最后没有下行字,请帮助 –

+0

我编辑了我的答案,希望能够解决您的问题。 –

+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; 
} 
相关问题