PHP之目录的操作
==============目录的操作=================
创建目录: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;