本文实例总结了php目录操作方法。分享给大家供大家参考,具体如下:
目录操作
新建目录:mkdir(路径,权限,递归创建)
删除目录:rmdir()
移动(改名):rename()
获取目录内容:
//打开目录
目录句柄 = opendir()
//读取目录
文件名 = readdir(目录句柄)
依次读取文件名,同时向下移动文件句柄指针,读取不到则返回false
//关闭目录
closedir()
递归读取目录内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?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); } } } |
运行效果图如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?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 ; } |
运行效果图如下:
递归删除目录:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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
1
|
iconv( 'gbk' ,utf-8',file); |
代码地址存在中文:需要转换为系统编码
1
|
iconv(utf-8 ',' gbk',file); |
希望本文所述对大家php程序设计有所帮助。