Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Codeigniter中使用mkdir函数创建目录时出错_Php_Codeigniter_Mkdir - Fatal编程技术网

Php 在Codeigniter中使用mkdir函数创建目录时出错

Php 在Codeigniter中使用mkdir函数创建目录时出错,php,codeigniter,mkdir,Php,Codeigniter,Mkdir,我试图在Codeigniter安装中使用php的mkdir函数递归地创建一个目录。我的代码如下所示: mkdir('docs/client/bills/payd', 0777, true) 文档目录已经存在于我的站点根目录中,客户目录是使用0755权限创建的,账单目录是使用1341权限创建的(奇怪!),最后一个目录,付费从未创建。 我试图将mkdir参数列表中的权限更改为0、755等。。。什么都没有改变。我还试着将umask设置为0,0777。。。什么也没有 umask(0777); mkdi

我试图在Codeigniter安装中使用php的mkdir函数递归地创建一个目录。我的代码如下所示:

mkdir('docs/client/bills/payd', 0777, true)
文档目录已经存在于我的站点根目录中,客户目录是使用0755权限创建的,账单目录是使用1341权限创建的(奇怪!),最后一个目录,付费从未创建。
我试图将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()函数以使其更清晰

这应该行得通

编辑

更清楚地说,这将返回以下内容:

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='/this/directories/ready/exist/;
mkdir($existing_path.'new directory/',0755,true);

在尝试了Lorenzo Magno和Tpojka的以下两种回答后,我意识到cPanel正在创建具有相同错误的相同路径。然后我意识到上次修改目录创建的时间与a昨天创建目录的时间相同。。。cPanel正在恢复错误版本的目录创建。我刚刚更改了客户端名称,创建工作正常。问题开始是因为我在第一次尝试时没有将递归参数设置为true,当我设置为true时,cPanel一直在重新创建/恢复第一个错误状态。总之,我的第一个版本的代码工作正常,因此Lorenzo和Tpojka的响应工作正常。。。我认为洛伦佐的回答是正确的,只是因为他先回答了。谢谢你们两位。