本文实例总结了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(" ",$dep*4),$file.'</br>'; if(is_dir($path.'/'.$file)){ $func = __FUNCTION__; $func($path.'/'.$file,$dep+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 showDir('../../file/sim'); function showDir($path,$dep=0){ $pos = opendir($path); while(false!==$file=readdir($pos)){ if($file=='.'||$file=='..') continue; // echo str_repeat(" ",$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程序设计有所帮助。