'w' menghidupkan mod penulisan, halakan penuding fail ke pengepala fail dan potong saiz fail kepada sifar. Jika fail itu tidak wujud, cuba buatnya.
'a' dibuka dalam mod menulis dan menghalakan penuding fail ke hujung fail. Jika fail itu tidak wujud, cuba buatnya.
Nampaknya kedua-dua kaedah penulisan ini berbeza Tetapi bagaimana keputusan ujian saya adalah sama?
Kod adalah seperti berikut:
<?php
$dir = "./a/";
$txt = '1.txt';
$fh = fopen($txt, 'w');
$dh = opendir($dir);
while (($file = readdir($dh)) !== false) {
if ($file == '.' || $file == '..') {
continue;
}
fwrite($fh, $file."\n");
}
closedir($dh);
?>
Baca fail dalam folder a dan tuliskannya ke dalam teks Di sini, jika fopen ialah w atau a, mengapa hasilnya sama
Anda mula-mula menulis beberapa kandungan dalam 1.txt, dan kemudian anda boleh melihat perbezaannya dengan menguji w dan a
Ringkasnya, untuk fail teks yang sudah mempunyai kandungan, w ialah mengosongkan kandungan sedia ada dan kemudian menulisnya, dan a ialah menambah kandungan berdasarkan kandungan sedia ada
Untuk fail teks serba baharu, kedua-duanya adalah sama
Jika 1.txt tidak wujud atau kandungan kosong, maka kesan penambahan dan penulisan semula adalah sama.
Jika 1.txt wujud dan mempunyai kandungan, kesannya berbeza.
a adalah tambah, bukan ditimpa.
w adalah perlindungan langsung.
a模式
是追加,这一句是重点,将文件指针指向文件末尾,如果原来文件存在,那么要写入的内容将添加到文件末尾,你那个例子,是创建新文件了,等同于w模式