我file_put_contents
用来创建一个文件。我的 php 进程在一个有权写入目录的组中运行。然而,当file_put_contents
被调用时,生成的文件没有组写权限(它第一次创建就好了)。这意味着如果我尝试覆盖文件,它会因为缺少权限而失败。
有没有办法创建具有组写入权限的文件?
示例 1(将文件权限设置为所有者和组的读写权限,并为其他人设置读取权限):
file_put_contents($filename, $data);
chmod($filename, 0664);
示例 2(使文件可按组写入而不更改其他权限):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 16);
示例 3(在不更改其他权限的情况下使每个人都可以写入文件):
file_put_contents($filename, $data);
chmod($filename, fileperms($filename) | 128 + 16 + 2);
128、16、2 分别为所有者、组和其他可写。
要打开文件并覆盖内容,您需要对该文件的写入权限。了解区别很重要。要覆盖整个文件,您实际上需要对该目录的写权限。
chmod()
如果您想明确说明文件和/或目录,请使用它来设置适当的内容。