Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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中的文件夹_Php_Directory_Codeigniter 3_Rmdir - Fatal编程技术网

Php 正在删除CodeIgniter中的文件夹

Php 正在删除CodeIgniter中的文件夹,php,directory,codeigniter-3,rmdir,Php,Directory,Codeigniter 3,Rmdir,更新:我已经解决了,我不知道如何解决,但它现在正在工作,这里是新的更新功能,以防任何未来的用户发现自己在一个类似的问题 假设$id变量来自一个获取被删除数据的当前id的函数,并且假设您已经有了一个根据用户名创建文件夹的函数,那么下面的操作应该可以 public function delete($id) { $this->db->where('id', $id); $this->db->delete($this->table);

更新:我已经解决了,我不知道如何解决,但它现在正在工作,这里是新的更新功能,以防任何未来的用户发现自己在一个类似的问题

假设$id变量来自一个获取被删除数据的当前id的函数,并且假设您已经有了一个根据用户名创建文件夹的函数,那么下面的操作应该可以

public function delete($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);


        // If users closes his account, all of his folders should be deleted as well
        $item = $this->get($id)->username;
        //varDebug($item);
        delete_files(FCPATH."assets/img/users/avatars/".$item, TRUE);
        delete_files(FCPATH."assets/img/users/covers/".$item, TRUE);
        delete_files(FCPATH."assets/img/users/status/".$item, TRUE);
        rmdir("assets/img/users/avatars/".$item);
        rmdir("assets/img/users/covers/".$item);
        rmdir("assets/img/users/status/".$item);
    }
我有一个注册表单,用户可以注册在我的应用程序中创建自己的帐户,我给他们机会上传自己的图片等。到目前为止一切都很好

当用户和/或管理员删除用户帐户时会出现问题。例如,作为一名管理员,我决定删除Brian的帐户,他的所有文件夹也应该删除

当前输出是删除每个人(如果有超过他自己的帐户)文件夹而不是他自己的帐户

以下是我的模型中的内容:

public function delete($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);


        // If users closes his account, all of his folders should be deleted as well
        $item = $this->get($id);
        delete_files("assets/img/users/avatars/".$item['username']."/", TRUE);
        delete_files("assets/img/users/covers/".$item['username']."/", TRUE);
        delete_files("assets/img/users/status/".$item['username']."/", TRUE);
        rmdir("assets/img/users/avatars/".$item['username']."/");
        rmdir("assets/img/users/covers/".$item['username']."/");
        rmdir("assets/img/users/status/".$item['username']."/");
    }

有人能帮我吗?

您需要提供
删除\u文件()
的完整路径。容易做到。只需将
FCPATH
添加到路径的开头。这假设
资产
应用程序
系统
处于同一级别。相应地调整

FCPATH
是指向
index.php
所在文件夹的绝对路径

delete_files(FCPATH."assets/img/users/avatars/".$item['username'], TRUE);

路径上不需要尾部斜杠。如果这样做没有坏处,但是
delete_files()
无论如何都会删除它。

echo$item['username']会产生什么?它会产生当前ci_用户的当前用户名。id(表名根据被删除帐户的id)。那么您是说每个用户在指定的文件夹中都有一个文件夹吗?e、 g.
assets/imgs/users/avatars/brian69/
assets/imgs/users/cover/brian69/
等等?是的,先生,这正是我在做的。文件夹是根据当前会话命名的($this->session->userdata('username')),由于用户名是唯一的,如果文件夹不存在,则创建该文件夹