手机版

用PHP遍历文件夹和子目录的功能代码

时间:2021-10-17 来源:互联网 编辑:宝哥软件园 浏览:

我们要使用的函数是ScanDir,它会列出指定路径中的文件和目录,就像Dir一样。

使用更强大的Glob()函数,该函数以数组的形式返回与指定模式匹配的文件名或目录。友情提醒,不要像小恶魔一样在电脑前待太久,否则会像小恶魔一样得血性高血糖。1.遍历单层文件夹:扫描单层文件夹的问题是,虽然两个函数的结果不同,但性能相差不大。Scandir函数提供了两个额外的行。和“.”,而Glob没有。复制代码如下:函数get _ dir _ scandir(){ $ tree=array();foreach(scandir('。/')作为$single){ echo $single。br/\ r \ n ';} } get _ dir _ scandir();函数get _ dir _ glob(){ $ tree=array();foreach(glob’。/*)作为$single){ echo $single。br/\ r \ n ';} } get _ dir _ glob();2.递归遍历文件树:在递归扫描文件夹树的问题上,确切地说,Glob函数表现得更好。Scandir函数会莫名其妙地扫描文件./两次,也就是说如果小恶魔有两个文件。/b.php和./a.php,结果会在扫描报告上出现两次,很奇怪。复制代码如下://更新于2010 . 07 . 25-以下代码无效$path=' . ';函数get _ file tree _ scandir($ path){ $ tree=array();foreach(scandir($path)为$single){ if(is_dir('./'.$ single)){ $ tree=array _ merge($ tree,get _ file tree($ single));} else{ $tree[]='./'.$ single} }返回$ tree} print _ r(get _ file tree _ scandir($ path));//更新于2010 . 07 . 25-以下是新代码$path='。/';函数get _ file tree _ scandir($ path){ $ result=array();$ temp=array();if(!is_dir($path)||!is _可读($path))返回null//检查目录$allfiles=scandir($path)的有效性;//获取目录foreach中的所有文件和文件夹($所有文件作为$ filename){//如果(in _ array ($ filename,array(' . '),'.')))继续;//忽略。和.$fullname=$path。'/'.$文件名;//如果(is_dir($fullname)) {//如果是目录,则继续递归$ result[$ filename]=get _ file tree _ scandir($ full name);//递归start } else { $ temp[]=$ filename;//如果是文件,保存在数组中}} foreach ($temp as $tmp) {//将临时数组的内容保存在保存结果的数组中$ result[]=$ tmp;//这将把文件夹放在前面,文件放在后面}返回$ result} print _ r(get _ file tree _ scandir($ path));Glob功能扫描灰色往往是准确的,并且会根据字母自动排列顺序,这似乎是最好的方案。复制代码如下: $path=' . ';函数get _ file tree($ path){ $ tree=array();foreach(glob($path)。/*)作为$ single){ if(is _ dir($ single)){ $ tree=array _ merge($ tree,get _ file tree($ single));} else { $ tree[]=$ single;} }返回$ tree} print _ r(get _ file tree($ path));

版权声明:用PHP遍历文件夹和子目录的功能代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。