我正在尝试在php中创建文件。该目录存在,但文件不存在。
我尝试将fopen
与'r'标志一起使用,但会引发错误。
failed to open stream: No such file or directory
我检查了文件权限。 我改用了'a'标志,它起作用了。
$file = fopen('output/readme.txt', 'a');
fwrite($file, 'some text to input');
fclose($file);
在php manual中,'w'和'a'标志似乎都做同样的事情。
两个标志之间是否有区别?可能是什么原因导致错误?
编辑:我再试一次,这一次'w'和'a'标志都起作用而没有引发任何错误。我可能在不知不觉中使用了错误的标志。但是,感谢您澄清文件指针。我显然忽略了这种差异。
答案 0 :(得分:7)
仔细阅读手册:
'w'仅开放用于写作;将文件指针放在文件的开头,然后截断文件到零长度。如果该文件不存在,请尝试创建它。
'a'仅用于写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。
所以基本上 w 会清空文件,而 a 会附加到文件中。