Heim > Fragen und Antworten > Hauptteil
'w' aktiviert den Schreibmodus, zeigt den Dateizeiger auf den Dateiheader und kürzt die Dateigröße auf Null. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
'a' öffnet sich im Schreibmodus und zeigt den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht vorhanden ist, versuchen Sie, sie zu erstellen.
Es scheint, dass diese beiden Schreibmethoden unterschiedlich sind. Aber wie kommt es, dass die Ergebnisse meines Tests gleich sind?
Der Code lautet wie folgt:
<?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);
?>
Lesen Sie die Dateien im Ordner a und schreiben Sie sie in Text. Wenn fopen w oder a ist, warum ist das Ergebnis dasselbe?
大家讲道理2017-05-24 11:32:31
你先在1.txt里面任意写点内容,你再测试w和a就能看出区别了
简单说就是对于一个已经存在内容的文本文件,w是清空已有内容再写,a是在已有内容的基础上往后追加内容
对于一个全新的文本文件,两者是一样的
某草草2017-05-24 11:32:31
a模式
是追加,这一句是重点,将文件指针指向文件末尾,如果原来文件存在,那么要写入的内容将添加到文件末尾,你那个例子,是创建新文件了,等同于w模式