'w' 寫入方式打開,將檔案指標指向檔案頭並將檔案大小截為零。如果文件不存在則嘗試建立之。
'a' 寫入方式打開,將檔案指標指向檔案結尾。如果文件不存在則嘗試建立之。
看這兩個寫入方式是不一樣的 但是 我這邊測試的結果怎麼是一樣的呢?
程式碼如下:
<?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);
?>
讀取a資料夾裡的檔案 然後寫入到文字裡 這裡fopen是w或a怎麼結果是一樣的呢
你先在1.txt裡面任意寫點內容,你再測試w和a就能看出區別了
簡單說就是對於一個已經存在內容的文字文件,w是清空已有內容再寫,a是在已有內容的基礎上往後追加內容
對於一個全新的文本文件,兩者是一樣的
如果 1.txt 原來就是不存在或內容為空,那麼追加和重寫的效果是一樣的。
如果 1.txt 存在,並且有內容,效果是不同的。
a是追加,不覆蓋。
w是直接覆蓋。
a模式
是追加,这一句是重点,将文件指针指向文件末尾,如果原来文件存在,那么要写入的内容将添加到文件末尾,你那个例子,是创建新文件了,等同于w模式