php - 如何使用具有组写入权限的 file_put_contents 创建文件?

标签 php linux nginx

我正在使用 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分别为所有者、组和其他可写。

关于php - 如何使用具有组写入权限的 file_put_contents 创建文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240034/

相关文章:

ssl - Nginx 确实重定向,而不是代理

nginx - 使用Nginx作为Docker的代理

php - 每个模型,相似的代码 - 更好的方法? (CakePHP)

php - 我无法使用 php 中的 session 将值从一个页面传递到另一个页面

php - CakePHP 3 : How to display associated data for each record in index. CTP?

php - 带有 Xampp 错误的符号链接(symbolic link)

linux - centos linux 在哪里存储 tar 文件错误

PHP Fpm 进程正在终止我的网站 : process is blocked with status D

linux - 如何正确地签署从另一个 bash 脚本运行的 bash 脚本?

linux cmp 实用程序输出 : what is a "line"?