在 Codeigniter 中使用 mkdir 函数创建目录时出错
Error creating directory using mkdir function in Codeigniter
我正在尝试在 Codeigniter 安装中使用 php 的 mkdir 函数递归创建目录。我的代码如下所示:
mkdir('docs/client/bills/payd', 0777, true)
docs 目录已存在于我的站点根目录中,正在使用 0755 权限创建 client 目录,bills 目录正在使用 permission 1341(奇怪!)创建,而最后一个目录 payd 从未创建。
我尝试将 mkdir 参数列表中的权限更改为 0、755 等……但没有任何改变。我还尝试将 umask 设置为 0、0777... 但什么也没有。
umask(0777);
mkdir('docs/client/bills/payd', 0777, true)
谁能告诉我我做错了什么?上面的代码是从 Codeigniter 常规控制器调用的。
使用它来指定工作目录,它可能会混淆目录所在的位置。
mkdir( getcwd().'docs/client/bills/payd', 0777, true);
getcwd 是您的 codeigniter 的工作目录。可以在PHP指南中搜索getcwd()函数更清楚
这应该有效。
编辑
为了更清楚,这将 return 以下内容:
C:\xampp\htdocs\YOUR_ROOT_DIRECTORY\docs\client\bills\payd
再次编辑
虽然再次阅读后,这只会创建 payd 并假设 docs\client\bills 已经创建。您可以使用 mkdir 或使用文件资源管理器创建客户和账单。但是还有其他 PHP 方法,如果需要我可以提供帮助。
祝你好运
试试
if ( ! is_dir( FCPATH.'docs/client/bills/payd' )//FCPATH is absolute path to the project directory
{
mkdir( FCPATH.'docs/client/bills/payd', 0777, true );//although 0755 is just fine and recomended for uploading and reading
}
我也遇到了 PHP mkdir
这个奇怪的“1341”权限错误,与 CodeIgniter 无关,这是一个纯粹的 PHP 问题!
经过多次试验,我唯一能让它工作的方法是在路径末尾添加一个斜杠,并将递归标志设置为 'true'。 (尽管 PHP 文档没有显示最后的斜杠,而且我只创建了一个目录。)
即
$existing_path = '/these/directories/already/exist/';
mkdir( $existing_path . 'new-directory/', 0755, true);
我正在尝试在 Codeigniter 安装中使用 php 的 mkdir 函数递归创建目录。我的代码如下所示:
mkdir('docs/client/bills/payd', 0777, true)
docs 目录已存在于我的站点根目录中,正在使用 0755 权限创建 client 目录,bills 目录正在使用 permission 1341(奇怪!)创建,而最后一个目录 payd 从未创建。
我尝试将 mkdir 参数列表中的权限更改为 0、755 等……但没有任何改变。我还尝试将 umask 设置为 0、0777... 但什么也没有。
umask(0777);
mkdir('docs/client/bills/payd', 0777, true)
谁能告诉我我做错了什么?上面的代码是从 Codeigniter 常规控制器调用的。
使用它来指定工作目录,它可能会混淆目录所在的位置。
mkdir( getcwd().'docs/client/bills/payd', 0777, true);
getcwd 是您的 codeigniter 的工作目录。可以在PHP指南中搜索getcwd()函数更清楚
这应该有效。
编辑
为了更清楚,这将 return 以下内容:
C:\xampp\htdocs\YOUR_ROOT_DIRECTORY\docs\client\bills\payd
再次编辑
虽然再次阅读后,这只会创建 payd 并假设 docs\client\bills 已经创建。您可以使用 mkdir 或使用文件资源管理器创建客户和账单。但是还有其他 PHP 方法,如果需要我可以提供帮助。
祝你好运
试试
if ( ! is_dir( FCPATH.'docs/client/bills/payd' )//FCPATH is absolute path to the project directory
{
mkdir( FCPATH.'docs/client/bills/payd', 0777, true );//although 0755 is just fine and recomended for uploading and reading
}
我也遇到了 PHP mkdir
这个奇怪的“1341”权限错误,与 CodeIgniter 无关,这是一个纯粹的 PHP 问题!
经过多次试验,我唯一能让它工作的方法是在路径末尾添加一个斜杠,并将递归标志设置为 'true'。 (尽管 PHP 文档没有显示最后的斜杠,而且我只创建了一个目录。)
即
$existing_path = '/these/directories/already/exist/';
mkdir( $existing_path . 'new-directory/', 0755, true);