phptree 发表于 2012-2-25 15:22:28

请教:CI如何创建多级目录,是用递归吗?如何实现啊

创建多级目录的问题,文件上传的时候,文件不存在会出错,怎么才能根据路径创建相应的目录呢,
递归函数也不知道怎么改,怎么用,请教大家看看怎么弄

        function createFolder($path){
                if(!file_exists($path)) {
                        ctreateFolder(dirname($path));//这里要怎么改写啊
                        mkdir($path,0700);
                }
        }

方法中调用方法,我用$this-> self::,放在控制器,模型中都不行,该如何实现呢

huboo82 发表于 2012-2-25 15:47:19

你看看这个能用不。
http://home.phpchina.com/space.php?uid=100535&do=blog&id=183467

phptree 发表于 2012-2-25 15:59:11

本帖最后由 phptree 于 2012-2-25 16:02 编辑

huboo82 发表于 2012-2-25 15:47 static/image/common/back.gif
你看看这个能用不。
http://home.phpchina.com/space.php?uid=100535&do=blog&id=183467
谢谢大大,函数我明白,就是不知道放在CI里如何用,因为用到递归,函数里面的函数,在ci下调用显示错误

huboo82 发表于 2012-2-25 16:15:00

另一个

function create_dirs($dir, $mode='0777')
{
       if(!is_dir($dir)){
            $this->create_dirs(dirname($dir), $mode);
            mkdir($dir, $mode);
       }
       return true;
}

地址:http://laiguowei2004.blog.163.com/blog/static/3682900020111161042247/

sdink 发表于 2012-2-25 20:41:42

       
      function makedir($dir_name, $mode = 0777) {
                $dir_name = str_replace ( "\\", "/", $dir_name );
                $dir_name = preg_replace ( "#(/" . "/+)#", "/", $dir_name );
                if (is_dir ( $dir_name ) !== false) {
                        return true;
                }
                $dir_name = explode ( "/", $dir_name );
                $dirs = '';
                foreach ( $dir_name as $dir ) {
                        if (trim ( $dir ) != '') {
                                $dirs .= $dir . "/";
                                if (is_dir ( $dirs ) == false && @mkdir ( $dirs, $mode ) === false) {
                                        return false;
                                } else {
                               
                                }
                        }
                }
                return true;
        }

提供一个函数。希望可以用得上

Hex 发表于 2012-2-26 00:50:42

php 创建目录的函数支持递归。。。不用自己写,大家要多看PHP手册呀。
http://php.net/manual/en/function.mkdir.php

燃雲 发表于 2012-2-26 07:39:11

太喜欢编程了!

mkdir($path, 0700, true);

第三个是递归参数,缺省是false。

英文版也许不受欢迎。

http://www.php.net/manual/zh/function.mkdir.php

sdink 发表于 2012-2-27 13:01:03

sdink 发表于 2012-2-25 20:41 static/image/common/back.gif
提供一个函数。希望可以用得上

真好。学到个东西。感谢
页: [1]
查看完整版本: 请教:CI如何创建多级目录,是用递归吗?如何实现啊