PHP之目录

目录操作

  • 新建目录
    mkdir(路径,权限,递归创建)
  • 删除目录
    rmdir()
  • 移动(改名)
    rename()
  • 获取目录内容
    //打开目录
    目录句柄 = opendir()
    //读取目录
    文件名 = readdir(目录句柄)
    依次读取文件名,同时向下移动文件句柄指针,读取不到则返回false
    //关闭目录
    closedir()

递归读取目录内容

<?php
showDir('../../file');
function showDir($path,$dep=0){
    $pos = opendir($path);
    while(false!==$file=readdir($pos)){
        if($file=='.'||$file=='..') continue;
        echo str_repeat("&nbsp",$dep*4),$file.'</br>';
        if(is_dir($path.'/'.$file)){
            $func = __FUNCTION__;
            $func($path.'/'.$file,$dep+1);
        }
    }
}

PHP之目录_第1张图片

<?php
$res = showDir('../../file');
echo '<pre>';
print_r($res);
function showDir($path){
    $pos = opendir($path);
    $next = array();
    while(false!==$file=readdir($pos)){
        if($file=='.'||$file=='..') continue;
        $fileinfo = array();

        $fileinfo['name'] = $file;

        if(is_dir($path.'/'.$file)){
            $fileinfo['type'] = 'dir';
            $func = __FUNCTION__;
            $fileinfo['next'] = $func($path.'/'.$file);
        }else{
            $fileinfo['type'] = 'file';
        }
        $next[] = $fileinfo;
    }
    closedir($pos);
    return  $next;
}

PHP之目录_第2张图片

递归删除目录

<?php showDir('../../file/sim'); function showDir($path,$dep=0){ $pos = opendir($path); while(false!==$file=readdir($pos)){ if($file=='.'||$file=='..') continue; // echo str_repeat("&nbsp",$dep*4),$file.'</br>'; if(is_dir($path.'/'.$file)){ $func = __FUNCTION__; $func($path.'/'.$file,$dep+1); }else{ unlink($path.'/'.$file); } } rmdir($path); closedir($pos); }

目录文件编码问题:

  • 展示时,将操作系统编码转换为响应数据编码
    windows为gbk,项目 utf-8
    iconv(‘gbk’,utf-8’,file);
  • 代码地址存在中文:需要转换为系统编码
    iconv(utf-8’,’gbk’,file);

你可能感兴趣的:(PHP,目录)