簡體   English   中英

使用php刪除文件中包含特定單詞的行之前的所有行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM