[英]Delete all lines before a line that included specific word in a file by using php
我需要php中的簡單代碼,可以刪除包含特定單詞的行之前的所有行,例如,這是foo.txt的內容:
.
.
eroigjeoj
dvjdofgj
dsfdsft
reytyjkjm
.
.
[DATA]
1,2,4
3,4,5
.
.
.
我想刪除包含“ [DATA]”的行之前的所有行,也刪除該行。 結果是具有以下內容的foo.txt:
1,2,4
3,4,5
.
.
.
這是一種方法,可能不是最有效的。
創建一個新的文本文件(text2)。
$text2 = fopen("text2", "w");
將布爾值初始化為false。
$hitWord = false;
逐行閱讀原始文本文件(text1),直到您擊中字符串'[DATA]',然后將后續各行添加到text2
$handle = fopen("text1.txt", "r"); if ($handle) { while (($line = fgets($handle)) !== false) { if($hitWord){ fwrite($text2, $line . "\\n"); }else{ if(strpos($line,'[DATA]') !== false){ $hitWord = true; } } } fclose($handle); } else { // error opening the file. }
使用unlink($text1)
刪除text1 //您將需要路徑
使用rename()
函數將text2重命名為text1。
交替地
您可以使用上面的相同方法。 除了代替編輯新的文本文件外,還可以編輯新的String並在程序末尾僅用此字符串替換text1
所有行。
這樣可以省去創建/刪除/編輯新文件的麻煩。 確保正確使用新行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.