本文实例讲述了php中目录操作opendir()、readdir()及scandir()用法。分享给大家供大家参考,具体如下:
opendir(path,context)
若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 “@” 来隐藏 error 的输出。
readdir()
函数返回由 opendir()
打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回 false。
scandir()
函数返回一个数组,其中包含指定路径中的文件和目录。
若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录,则返回布尔值 false
付上2段搜到的读取目录的代码,亲测有效
显示目录中文件名
1
2
3
4
5
6
7
8
9
|
// 打开目录,然后读取其内容
if ( is_dir ( $dir )){
if ( $dh = opendir( $dir )){
while (( $file = readdir( $dh )) !== false){
echo "filename:" . $file . "<br>" ;
}
closedir ( $dh );
}
}
|
拷贝一个目录的文件到另一个目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
copy_dir( $from_dir , $to_dir );
function copy_dir( $from_dir , $to_dir ){
if (! is_dir ( $from_dir )){
return false;
}
echo "\r\n from:" , $from_dir , '---to' , $to_dir ;
$from_files = scandir( $from_dir );
//如果不存在目标目录,则尝试创建
if (! file_exists ( $to_dir )){
@ mkdir ( $to_dir );
}
if (! empty ( $from_files )){
foreach ( $from_files as $file ){
if ( $file == '.' || $file == '..' ){
continue ;
}
if ( is_dir ( $from_dir . '/' . $file )){ //如果是目录,则调用自身
copy_dir( $from_dir . '/' . $file , $to_dir . '/' . $file );
} else { //直接copy到目标文件夹
copy ( $from_dir . '/' . $file , $to_dir . '/' . $file );
}
}
}
}
|
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/u010265663/article/details/77586547