本文共 1649 字,大约阅读时间需要 5 分钟。
==============目录的操作=================
创建目录:mkdir(目录地址,权限,是否递归创建);----在Linux中权限要写,在Windows中可以省略
删除目录
移动(改名)
获取目录内容(文件)
1.打开目录:
文件名为0 的问题
3.关闭目录
closedir(目录句柄)
//数状展示递归 //目录地址 function readDirs($path,$deep=0){ $dir_handle=opendir($path); while(false!==$file=readdir($dir_handle)){ if($file=='.'||$file=='..')continue; echo str_repeat(' ', $deep*4),$file,'<br>'; if(is_dir($path.'/'.$file)){ //是目录 readdir($path.'/'.$file,$deep+1); } } closedir($dir_handle); } //嵌套展示数据 function readDirsNested($path){ $nested=array();//存储当前目录下的所有文件 $dir_handle=opendir($path); while(false!==$file=readdir($dir_handle)){ if($file=='.'||$file=='..')continue; //创建当前文件信息 $fileinfo=array(); $fileinfo['name']=$file; if(is_dir($path.'/'.$file)){ //是目录 $fileinfo['type']='dir'; $func_name=__FUNCTION__; $fileinfo['nested']=$func_name($path.'/'.$file); }else{ //是文件 $fileinfo['type']='file'; } //存储到$nested中 $nested[]=$fileinfo; } closedir($dir_handle); return $nested; } $list=readDirsNested($path); //遍历 foreach($list as $first){ if($first['typ']=='file')continue; foreach($first['nested'] as$second){ echo ' ',$second['name'],'<br>'; } }
==============递归删除=======
unlink(文件地址);删除文件
//递归删除 function rmDirs($path,$deep=0){ $dir_handle=opendir($path); while(false!==$file=readdir($dir_handle)){ if($file=='.'||$file=='..')continue; if(is_dir($path.'/'.$file)){ //是目录 $func_name=__FUNCTION__;当前方法名 $fun_name($path.'/'.$file); }else { unlink($path.'/'.file); } } closedir($dir_handle); return rmdir($path); }
====地址中的字符集的问题====
转换的是读取到的字符串,不是文件的编码
iconv('gbk','utf-8',文件);-----吧gbk转换成utf-8----将操作系统的编码转换成响应编码;
当带有中文字符串当一个地址的时候,就需要转换成gbk;当在页面上输出从磁盘上读取的文件名的时候,就需要转换成utf8;