我怎样才能创build一个file_put_contents具有组写入权限的文件?

我正在使用file_put_contents创build一个文件。 我的php进程正在有权写入目录的组中运行。 但是,当调用file_put_contents时,生成的文件没有组写入权限(第一次创build就好)。 这意味着如果我尝试覆盖文件,则由于缺less权限而失败。

有没有办法创build组写权限的文件?

在调用file_put_contents之前,您可以尝试设置umask :它将更改在创建文件时将赋予文件的默认权限。

另一种方式(根据文档更好)是在创建文件之后使用chmod来更改权限。

那么在重读这个问题之后,我希望我能理解这个问题。

示例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()来设置文件和/或目录的适当内容,如果你想明确的话。