下面是关于PHP遍历文件夹的攻略。
下面是关于PHP遍历文件夹的攻略。
标准的遍历文件夹代码块
使用PHP的opendir
函数打开一个目录,操作完成后使用closedir
关闭目录。在处理每一个文件或子目录时,使用PHP内置的递归函数执行相应的操作。
同样需要注意的是,在操作完每个文件或子目录后,要检查其是否为.
,..
,以及文件是否被隐藏。 普通遍历代码如下:
$dir = './'; //待遍历目录
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($filename = readdir($dh)) !== false) {
if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
if (is_dir($dir . '/' . $filename)) {
// 是目录,递归遍历文件夹
traverse($dir . '/' . $filename);
} else {
// 是文件,进行相应操作
file_operation($dir . '/' . $filename);
}
}
}
closedir($dh);
}
}
/**
* 判断文件是否为隐藏文件
**/
function is_hidden($path) {
return (strpos($path, '.') === 0);
}
示例1:输出目录下所有文件和子目录的路径
function traverse($dir) {
$dir_handle = opendir($dir);
while ($filename = readdir($dir_handle)) {
if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
if (is_dir($dir . '/' . $filename)) {
// 目录
echo $dir . '/' . $filename . '<br>';
traverse($dir . '/' . $filename);
} else {
// 文件
echo $dir . '/' . $filename . '<br>';
}
}
}
closedir($dir_handle);
}
traverse('./');
示例2:统计目录下所有文件和子目录的总数量
$count = 0;
function traverse($dir) {
global $count;
$dir_handle = opendir($dir);
while ($filename = readdir($dir_handle)) {
if ($filename != '.' && $filename != '..' && !is_hidden($filename)) {
if (is_dir($dir . '/' . $filename)) {
// 目录
traverse($dir . '/' . $filename);
} else {
// 文件
$count++;
}
}
}
closedir($dir_handle);
return $count;
}
echo 'The count of files in the directory is: ' . traverse('./');
希望这些内容对你有所帮助。
沃梦达教程
本文标题为:php遍历文件夹下的所有文件和子文件夹示例
猜你喜欢
- PHP+MySQL高并发加锁事务处理问题解决方法 2022-10-15
- Yii框架数据库查询、增加、删除操作示例 2023-03-02
- php解析非标准json、非规范json的方式实例 2023-05-03
- php实现微信原生支付(扫码支付)功能 2022-10-19
- PHP获取数组最大值下标的方法 2024-01-13
- PHP页面间参数传递的四种方法详解 2024-02-26
- PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案 2022-11-23
- laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子 2023-03-12
- 如何在Laravel5.8中正确地应用Repository设计模式 2023-03-17
- PHP 错误处理机制 2024-03-01