【发布时间】:2010-11-17 10:09:41
【问题描述】:
我正在使用file_put_contents 创建一个文件。我的 php 进程在一个有权写入目录的组中运行。但是,当调用 file_put_contents 时,生成的文件没有组写入权限(它第一次创建就很好)。这意味着如果我尝试覆盖文件,它会因为缺少权限而失败。
有没有办法创建具有组写权限的文件?
【问题讨论】:
我正在使用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() 设置适合文件和/或目录的内容。
【讨论】: