
PHP读取目录树的实现方法
前一阵时间面试XX公司笔试题中竟然有这样一道题:
使用PHP列出目录树!
当时一看就懵逼了!基本的思路还是有的,不过是使用递归算法,但对PHP操作目录文件的方法却不是很了解,所以今天好好补习一下!
立即学习“PHP免费学习笔记(深入)”;
解题思路:
1、列出目录中的文件。
2、判断是否是目录,如果是目录就继续递归。
3、将所有文件名,存入多维数组
<?php
function recurDir($pathName)
{
//将结果保存在result变量中
$result = array();
$temp = array();
//判断传入的变量是否是目录
if(!is_dir($pathName) || !is_readable($pathName)) {
return null;
}
//取出目录中的文件和子目录名,使用scandir函数
$allFiles = scandir($pathName);
//遍历他们
foreach($allFiles as $fileName) {
//判断是否是.和..因为这两个东西神马也不是。。。
if(in_array($fileName, array('.', '..'))) {
continue;
}
//路径加文件名
$fullName = $pathName.'/'.$fileName;
//如果是目录的话就继续遍历这个目录
if(is_dir($fullName)) {
//将这个目录中的文件信息存入到数组中
$result[$fullName] = recurDir($fullName);
}else {
//如果是文件就先存入临时变量
$temp[] = $fullName;
}
}
//取出文件
if($temp) {
foreach($temp as $f) {
$result[] = $f;
}
}
return $result;
}
//验证一下这个函数是否好用!
$tree = recurDir('cart_ajax');
echo "<pre>";
print_r($tree);
echo "</pre>";
?>更多相关知识,请访问 PHP中文网!!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号