首頁  >  問答  >  主體

php - fopen w和a的差別

'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怎麼結果是一樣的呢

曾经蜡笔没有小新曾经蜡笔没有小新2687 天前1017

全部回覆(4)我來回復

  • 大家讲道理

    大家讲道理2017-05-24 11:32:31

    你先在1.txt裡面任意寫點內容,你再測試w和a就能看出區別了

    簡單說就是對於一個已經存在內容的文字文件,w是清空已有內容再寫,a是在已有內容的基礎上往後追加內容

    對於一個全新的文本文件,兩者是一樣的

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-24 11:32:31

    如果 1.txt 原來就是不存在或內容為空,那麼追加和重寫的效果是一樣的。
    如果 1.txt 存在,並且有內容,效果是不同的。

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-24 11:32:31

    a是追加,不覆蓋。
    w是直接覆蓋。

    回覆
    0
  • 某草草

    某草草2017-05-24 11:32:31

    a模式是追加,这一句是重点,将文件指针指向文件末尾,如果原来文件存在,那么要写入的内容将添加到文件末尾,你那个例子,是创建新文件了,等同于w模式

    回覆
    0
  • 取消回覆