'w' active le mode écriture, pointe le pointeur de fichier vers l'en-tête du fichier et tronque la taille du fichier à zéro. Si le fichier n'existe pas, essayez de le créer.
'a' s'ouvre en mode écriture et pointe le pointeur de fichier vers la fin du fichier. Si le fichier n'existe pas, essayez de le créer.
Il semble que ces deux méthodes d'écriture soient différentes. Mais comment se fait-il que les résultats de mon test soient les mêmes ?
Le code est le suivant :
<?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);
?>
Lisez les fichiers du dossier a et écrivez-les dans le texte Ici, si fopen est w ou a, pourquoi le résultat est le même
.
Vous écrivez d'abord du contenu en 1.txt, puis vous pourrez voir la différence en testant w et a
Pour faire simple, pour un fichier texte qui a déjà du contenu, w consiste à effacer le contenu existant puis à l'écrire, et a consiste à ajouter du contenu basé sur le contenu existant
Pour un tout nouveau fichier texte, les deux sont identiques
Si 1.txt n'existe pas ou si le contenu est vide, l'ajout et la réécriture ont le même effet.
Si 1.txt existe et a du contenu, l'effet est différent.
a est ajouté et non écrasé.
w est une couverture directe.
a模式
是追加,这一句是重点,将文件指针指向文件末尾,如果原来文件存在,那么要写入的内容将添加到文件末尾,你那个例子,是创建新文件了,等同于w模式