本文实例讲述了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