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

'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学习者快速成长!