我正在try 使用PHP和以下命令在我的服务器上创建一个目录:

mkdir("test", 0777);

但它不提供完全权限,只提供以下权限:

rwxr-xr-x

推荐答案

模式由当前的umask修改,在本例中为022.

umask是减法的.您获得mkdir的初始许可,然后减go umask,得到actual许可:

  0777
- 0022
======
  0755 = rwxr-xr-x.

如果您不希望发生这种情况,您需要将您的umask临时设置为零,这样它就不会产生任何影响.您可以使用以下代码片段执行此操作:

$oldmask = umask(0);
mkdir("test", 0777);
umask($oldmask);

第一行将umask更改为零,同时将前一行存储为$oldmask.第二行使用所需的权限和(现在不相关)umask创建目录.第三行将umask恢复到原来的状态.

有关更多详细信息,请参见PHPDoco for umaskmkdir.

Php相关问答推荐

Woocommerce将自定义数据添加到自定义文件中购物车中的产品

如何在数据库中添加注册表单中的动态新行?

获得客户S在WooCommerce为期1年的总支出

WooCommerce中仅在单一产品和产品档案页面中将小数设置为大写

WooCommerce:有条件地更改特定区域的发货类别

WooCommerce基于元数据的自定义范围目录排序

在Laravel中修改JSON输出

PHP MySQL求和子树并与父树累加

不包括WooCommerce中单独销售的产品

使用ESI的Symfony Sulu清漆

在Laravel中创建辅助函数时的约定

用自定义代码替换 WooCommerce 单一产品简短描述

Filament PHP v3:在禁用的表单字段上,ID 不会写入数据库

在 php 中生成 MAC ISO/IEC 9797-1

PHP 创建 CSV 文件并用波斯语写入

如何在 Laravel 中修改嵌套数组的键?

如何获取用户之间的最新消息列表

如果有很多重定向,PHP curl 的行为不像命令行 curl

使用来自 PHP 表单的数据更新 xml 命名空间

列表不在 GROUP BY 子句中并且包含 X2CRM 中的非聚合列