使用 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.
}
Delete text1 using unlink($text1)
// 你需要路径
使用 rename()
函数将 text2 重命名为 text1。
交替
您可以使用与上述相同的方法。除了不编辑一个新的文本文件,而是编辑一个新的字符串,然后在程序末尾用这个字符串替换 text1
中的所有行。
这将使您不必 create/delete/edit 新文件。确保正确使用新行
我需要 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. }
Delete text1 using
unlink($text1)
// 你需要路径使用
rename()
函数将 text2 重命名为 text1。
交替
您可以使用与上述相同的方法。除了不编辑一个新的文本文件,而是编辑一个新的字符串,然后在程序末尾用这个字符串替换 text1
中的所有行。
这将使您不必 create/delete/edit 新文件。确保正确使用新行