这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇 PHP 递归遍历指定文件夹内的文件实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂 linux 的文件系统,觉得对文件属性的访问跟 Shell 命令很像,所以想晚上来实践一下。
发现 php 的文件夹函数好像没有提供遍历文件夹下的所有文件(包括子目录中的文件),于是,就想自己实现一个。
在写的时候发现一些操作文件夹的函数并不是自己想的那样。比如,dirname() 根据提供的完整文件路径来取得文件所在的文件夹的路径,但如果你传入的是文件夹,它取的就是它的父文件夹。这点要明白。basename() 也是同样的道理,传入文件夹路径取得就是文件夹的名字。这两个函数返回的结果结尾都不加'/'
- <?php
- $dirPath='/home/WWW/Test';//目录,结尾不加'/'
- //执行遍历
- recursion_readdir($dirPath);
- /**
- *@summary 重复times次字符char
- *@param $char 需要重复的字符
- *@param $times 重复次数
- *@return 返回重复字符组成的字符串
- */
- function forChar($char='-',$times=0){
- $result='';
- for($i=0;$i<$times;$i++){
- $result.=$char;
- }
- return $result;
- }
- /**
- *@summary 递归读取目录
- *@param $dirPath 目录
- *@param $Deep=0 深度,用于缩进,无需手动设置
- *@return 无
- */
- function recursion_readdir($dirPath,$Deep=0){
- $resDir=opendir($dirPath);
- while($basename=readdir($resDir)){
- //当前文件路径
- $path=$dirPath.'/'.$basename;
- if(is_dir($path) AND $basename!='.' AND $basename!='..'){
- //是目录,打印目录名,继续迭代
- echo forChar('-',$Deep).$basename.'/<br/>';
- $Deep++;//深度+1
- recursion_readdir($path,$Deep);
- }else if(basename($path)!='.' AND basename($path)!='..'){
- //不是文件夹,打印文件名
- echo forChar('-',$Deep).basename($path).'<br/>';
- }
- }
- closedir($resDir);
- }
以上这篇 PHP 递归遍历指定文件夹内的文件实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0803/341178.html