本文实例总结了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程序设计有所帮助。