php递归创建文件夹的两种方法
2018-06-22 05:30:57来源:未知 阅读 ()
1、前言
php中 mkdir 只能创建一个目录(一级)而对于多级目录(创建一级目录时上级目录不存在)就会创建失败。所以在不确定目录级数的时候,我们就需要使用类似一级一级目录的检测,已保证目录创建成功;
递归创建目录的思路:
首先判断 dirname 是否是目录,如果是则尝试创建;
如果失败,则尝试创建上一级目录,使用上一级目录继续 调用本身方法;
2、采用分割目录的方法创建目录
/** * [simpleBuilt 通过分割方式创建目录] * @param string $dirname [目录名称] * @return [type] [description] */ public function simpleBuilt($dirname) { //判断是否是目录,如果是尝试创建目录 if(is_dir($dirname) || @mkdir($dirname, 0700)) { echo "{$dirname}创建成功".PHP_EOL; }else{ $dirArr = explode('/', $dirname); array_pop($dirArr);//移除最后一项 $newDirName = implode('/', $dirArr); $this->simpleBuilt($newDirName);//重新调用 if(@mkdir($dirname, 0777)) { echo "{$dirname}创建成功".PHP_EOL; } } }
3、使用dirname 方法进行创建
string dirname ( string $path )
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。(自动去除最后一个子目录)
/** * [commonBuilt 基于dirname的方法创建目录] * @param string $dirname [目录名称] * @return [type] [description] */ public function commonBuilt($dirname) { if(is_dir($dirname) || @mkdir($dirname, 0777)) { echo "{$dirname}创建成功".PHP_EOL; }else{ $this->commonBuilt(dirname($dirname)); if(@mkdir($dirname, 0777)) { echo "{$dirname}创建成功".PHP_EOL; } } }
4、使用dirname 方法进行创建(简化版)
/** * [superBuilt commomBuilt方法的简写方法] * @param string $dirname [目录名称] * @return [type] [description] */ public function superBuilt($dirname) { return is_dir($dirname) or $this->superBuilt(dirname($dirname)) and mkdir($dirname, 0777); }
pHP中逻辑运算符的优先级顺序:&& > || > and > or,即符号型>字母型,AND型>OR型
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:XML之预定义实体
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash