当我们想在自己的站点上添加多级目录时,可以运用 php函数mkdir来实现这以功能。下面我们将会为大家细致介绍php函数mkdir的具体意思,希望对有这方面需求的朋友有所帮助。
php函数mkdir参数与描述
path 必需。规定要建立的目录的名称。
mode 必需。规定权限。默认是 0777。
recursive 必需。规定能不能配置递归模式。
context 必需。规定文件句柄的环境。Context 是可修改流的行为的一套选项。
说明
php函数mkdir 尝试新建一个由 path 指定的目录。
默认的 mode 是 0777,意味着最大可能的访问权。
php默认的mkdir一次只能建立一层目录,如果在当前目录下建立一个div/css/layout 的目录就须要逐层逐层的先建立 div,再建立 div/css 再建立 div/css/layout,然而我们希望能让程序自动帮我们完成这个流程。
其实思路也很基本,1.先判断 div目录能不能存在,不存在则建立;2.判断子目录 div/css 能不能存在,不能存在则建立,3.在第二步中以子目录作为参数递归调用函数本身。也可以按相反顺序来,1.先判断最底层目录div/css/layout能不能存在;2.判断div/css/layout的上层目录div/css能不能存在,不存在则以div/css作为参数递归执行 。。
下面是php函数mkdir的程序代码:
- function mkdirs($dir)
- {
- if(!is_dir($dir))
- {
- if(!mkdirs(dirname($dir))){
- return false;
- }
- if(!mkdir($dir,0777)){
- return false;
- }
- }
- return true;
- }
- mkdirs('div/css/layout');
- 同样的思路,php用rmdir和unlink递归删除多级目录的代码:
- function rmdirs($dir)
- {
- $d = dir($dir);
- while (false !== ($child = $d->read())){
- if($child != '.' && $child != '..'){
- if(is_dir($dir.'/'.$child))
- rmdirs($dir.'/'.$child);
- else unlink($dir.'/'.$child);
- }
- }
- $d->close();
- rmdir($dir);
- }