PHP之目录的操作

==============目录的操作=================

创建目录:mkdir(目录地址,权限,是否递归创建);----在Linux中权限要写,在Windows中可以省略

PHP之目录的操作

删除目录

PHP之目录的操作

移动(改名)

PHP之目录的操作

获取目录内容(文件)

1.打开目录:

PHP之目录的操作

PHP之目录的操作

文件名为0 的问题

PHP之目录的操作

3.关闭目录

closedir(目录句柄)

PHP之目录的操作

PHP之目录的操作

PHP之目录的操作

//数状展示递归
//目录地址
function readDirs($path,$deep=0){


$dir_handle=opendir($path);
while(false!==$file=readdir($dir_handle)){


if($file=='.'||$file=='..')continue;
echo str_repeat('&nbsp', $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 '&nbsp;',$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