php遍历文件夹所有文件和子文件夹的解决办法
内容摘要
这篇文章主要为大家详细介绍了php遍历文件夹所有文件和子文件夹的简单示例,具有一定的参考价值,可以用来参考一下
文章正文
这篇文章主要为大家详细介绍了php遍历文件夹所有文件和子文件夹的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <code><?php /* php教程 www.512Pic.com */ /** * @param string $dir * @return array */ function my_scandir( $dir ) { $files = array (); if ( $handle = opendir( $dir ) ) { while ( ( $file = readdir( $handle )) !== false ) { if ( $file != ".." && $file != "." ) { if ( is_dir ( $dir . "/" . $file ) ) { $files [ $file ] = my_scandir( $dir . "/" . $file ); } else { $files [] = $file ; } } } closedir ( $handle ); return $files ; } } function my_scandir1( $dir ) { $files = array (); $dir_list = scandir( $dir ); foreach ( $dir_list as $file ) { if ( $file != ".." && $file != "." ) { if ( is_dir ( $dir . "/" . $file ) ) { $files [ $file ] = my_scandir1( $dir . "/" . $file ); } else { $files [] = $file ; } } } return $files ; } $result = my_scandir( './' ); $result = my_scandir1( './' ); ?></code> |
另一个实现方法
代码如下:
1 2 3 4 5 6 7 8 9 10 | <code> function fetchDir( $dir ) { foreach ( glob ( $dir . '\*' ) as $file ) { echo $file , "\n" ; if ( is_dir ( $file )) { fetchDir( $file ); } } } fetchDir( "D:\wamp\www\any" ); </code> |
还可以把‘\*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘\n'换成PHP_EOL ,这样可以跨平台了。
注:关于php遍历文件夹所有文件和子文件夹的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释