php - fopen w和a的差別
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-24 11:30:31
0
4
1042

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

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(4)
大家讲道理

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

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

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

大家讲道理

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

给我你的怀抱

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

某草草

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!