'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模式