txtファイルの1行を削除するには? TXTでphpのtxtファイルの1行を削除するには?
:
1
2
3
4
5
6
私はその後行うTXTファイルに金曜日の行を削除したいですか?
結果は
1
2
3
4
5
事前にあなたにみんなに感謝です!
txtファイルの1行を削除するには? TXTでphpのtxtファイルの1行を削除するには?
:
1
2
3
4
5
6
私はその後行うTXTファイルに金曜日の行を削除したいですか?
結果は
1
2
3
4
5
事前にあなたにみんなに感謝です!
file
関数は、(配列として)ファイルの内容を返すだけで、その配列で何をしても、ファイルではなく配列が変更されます。変更を保持するには、バックファイルの内容を書き込む:
$filename = 'test.txt';
$arr = file($filename);
if ($arr === false) {
die('Failed to read ' . $filename);
}
array_pop($arr);
file_put_contents($filename, implode(PHP_EOL, $arr));
彼は何を学びましたか? – PaulH
をファイルから最後の行を削除するように見えます。
はfile
、array_slice
とfile_put_contents
機能で、次のアプローチを使用します。
$file_name = "weekdays.txt"; // chanhe to your file name
$lines = file($file_name); // read the file as an array of lines
$lines = array_slice($lines, 0, -1); // 'trimming' the last line
file_put_contents($file_name, implode("", $lines)); // writes the remained lines back to file
大きいファイルの場合は、おそらく全体の内容を読み取り、バック、それを書き込まないようにしたいです。
代わりにftruncate()
関数を使用できます。しかし、最初に最後の行の長さを決定する必要があります。以下のコードは、ファイルの終わりから始めて、最初のCRまたはLF文字を見つけることによってそれを行います。見つかった場合、直前に別のCRまたはLFがあるかどうかをチェックします(したがって、最も一般的な行末形式をカバーします)。
$file = 'myFile.txt';
if(($h = fopen($file, 'r+')) === false) {
throw new Exception('Failed to open file');
}
$sz = filesize($file);
for($n = -1; $n >= -$sz; $n--) {
fseek($h, $n, SEEK_END);
$chr = fgetc($h);
if($chr == "\n" || $chr == "\r") {
fseek($h, $n - 1, SEEK_END);
$chr = fgetc($h);
if($chr == "\n" || $chr == "\r") {
$n--;
}
ftruncate($h, $sz + $n);
break;
}
}
fclose($h);
あなたは完全なファイルを読んで、編集して書き戻してください。 – splash58
'PHP read file'と' PHP loop'を検索しようとしましたか? – PaulH
表示されたtxtに金曜日の行はありません – PaulH