smarty框架内基于递归做的文件夹创建,非常好用
function mkdirs($pathname , $mode = 0755) {
is_dir(dirname($pathname)) || $this->mkdirs(dirname($pathname), $mode);
return is_dir($pathname) || @mkdir($pathname, $mode);
}
上面这段可能不太容易看懂,我稍微改下下
function mkdirs($pathname , $mode = 0755) {
if(!is_dir(dirname($pathname))){
$this->mkdirs(dirname($pathname), $mode);
}else{
return is_dir($pathname) || @mkdir($pathname, $mode);
}
}
下面这个是我做的基于ftp远程传输的
function mkdirs($pathname){
if( !ftp_chdir($this->conn,dirname($pathname)) ){
$this->mkdirs(dirname($pathname));
}
else{
return ftp_chdir($this->conn,$pathname) || ftp_mkdir($this->conn,$pathname);
}
}
$pathname是要存储的源文件地址,如 /data/t/0000/51/ 123.png
dirname() 函数每次执行删除$pathname一次 '/' 后面的数据。