2012-01-23 44 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; 
} 
相關問題