在 PHP fopen 函数中,w 和 w+ 模式有什么区别


In PHP fopen function, what's the difference between w and w+ mode?

我读过manaul,知道w+写和读,w只写。但是如何理解呢?

$file_name =  $_SERVER['DOCUMENT_ROOT']."/../data/test.txt";  //file is exist
$fp = fopen($file_name, 'w+');
fwrite($fp, 'hello, world!');
$len = filesize($file_name); 
echo $len; //13
$contents = fread($fp, $len);
var_dump($contents);//string(0) ""    why?
fclose($fp);

选项 ww+ 都会在使用 fopen 打开时截断文件。不同之处在于,您可以准确地读取在当前会话中使用文件期间编写的内容(我的意思是fopen->fwrite->fread(不会为空)->fclose)。因此,如果您尝试读取使用 ww+ = 打开的文件,则两种情况下的结果都应该为空