Php 在Codeigniter中使用mkdir函数创建目录时出错
我试图在Codeigniter安装中使用php的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
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
}
我在PHPmkdir
中也出现了奇怪的“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的响应工作正常。。。我认为洛伦佐的回答是正确的,只是因为他先回答了。谢谢你们两位。