我需要一个简单的代码在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。
或者
您可以使用上面相同的方法。除了不编辑一个新的文本文件,编辑一个新的字符串,并在程序末尾用这个字符串替换text1
中的所有行。
这将节省你必须创建/删除/编辑新文件。确保新行使用正确