PHP 中的 fopen 模式 “r+” 和 “rw+” 有什么区别?
Stack Overflow中的许多答案都使用,但手册没有列出模式,只有模式(或模式)。fopen($file, "rw+")
"rw+"
"r+"
"w+"
所以我想知道,“rw+”
模式是做什么的?fopen($file,
“rw+”或“
r+”
有什么区别?我问这个是因为没有关于模式的文档。"rw+"
一种方法是考虑模式是累加的,但我在手册页中找不到任何关于组合模式的提及(此外,如果已经使其可读,那么与 组合有什么意义?)。但最重要的是,w+
模式截断文件,而rw+
不会截断它(因此,它们不能是累加的)。可能没有模式,尽管Stack Overflow用户使用它。也许它之所以有效,是因为解析器忽略了“w”字母,因为模式似乎是===?fopen
"r"
"w+"
"w+"
rw+
rw+
r+
为了澄清我的问题:什么是“rw+”
模式,也就是说,它与其他模式有何不同?我在评论中只收到了两个答案:要么我应该检查文档(我已经检查并重新检查过)和一个错误的答案,它说它等于(它不是)。 截断文件,而不截断文件。"w+"
"w+"
"rw+"
这是一个用于测试的脚本(它证明截断文件,但不会):w+
rw+
<?php
$file = "somefile";
$fileOpened = fopen($file, "w");
fwrite($fileOpened, "0000000000000000000");
fclose($fileOpened);
$fileOpened = fopen($file, "rw+");
fwrite($fileOpened, "data");
fclose($fileOpened);
$fileOpened = fopen($file, "r");
$output = fgets($fileOpened);
echo "First, with 'rw+' mode:<br>".$output;
$fileOpened = fopen($file, "w+");
fwrite($fileOpened, "data");
fclose($fileOpened);
$fileOpened = fopen($file, "r");
$output = fgets($fileOpened);
echo "<br><br><br>Now with only 'w+' mode:<br>".$output;
?>