当前位置:首页 > PHP

php实现文件遍历

2026-02-16 02:51:27PHP

使用 scandir() 函数遍历目录

scandir() 函数返回指定目录中的文件和目录列表,包括 ...。可以通过循环遍历结果并过滤掉这些特殊条目。

$dir = '/path/to/directory';
$files = scandir($dir);

foreach ($files as $file) {
    if ($file !== '.' && $file !== '..') {
        echo $file . "\n";
    }
}

使用 glob() 函数匹配文件模式

glob() 函数根据指定的模式匹配文件或目录,支持通配符(如 *?)。

$files = glob('/path/to/directory/*');

foreach ($files as $file) {
    echo basename($file) . "\n";
}

使用 RecursiveDirectoryIterator 递归遍历

如果需要递归遍历子目录,可以使用 RecursiveDirectoryIterator 结合 RecursiveIteratorIterator

php实现文件遍历

$dir = new RecursiveDirectoryIterator('/path/to/directory');
$iterator = new RecursiveIteratorIterator($dir);

foreach ($iterator as $file) {
    if ($file->isFile()) {
        echo $file->getPathname() . "\n";
    }
}

过滤特定类型的文件

在遍历过程中,可以通过文件扩展名或其他属性过滤文件。例如,仅列出 .php 文件。

$files = glob('/path/to/directory/*.php');

foreach ($files as $file) {
    echo basename($file) . "\n";
}

使用 opendir()readdir() 手动遍历

opendir()readdir() 是更底层的函数,适合需要精细控制的情况。

php实现文件遍历

$dir = opendir('/path/to/directory');

while (($file = readdir($dir)) !== false) {
    if ($file !== '.' && $file !== '..') {
        echo $file . "\n";
    }
}

closedir($dir);

排除隐藏文件

在遍历时可以通过文件名前缀排除隐藏文件(如 .gitignore)。

$files = scandir('/path/to/directory');

foreach ($files as $file) {
    if ($file[0] !== '.') {
        echo $file . "\n";
    }
}

按修改时间排序文件

使用 array_multisort 结合 filemtime() 可以按文件修改时间排序。

$files = glob('/path/to/directory/*');
$timestamps = array_map('filemtime', $files);
array_multisort($timestamps, SORT_DESC, $files);

foreach ($files as $file) {
    echo basename($file) . "\n";
}

处理符号链接

如果目录中包含符号链接,可以通过 is_link() 检查并处理。

$files = scandir('/path/to/directory');

foreach ($files as $file) {
    $path = '/path/to/directory/' . $file;
    if (is_link($path)) {
        echo "Symbolic link: " . $file . "\n";
    } elseif (is_file($path)) {
        echo "File: " . $file . "\n";
    }
}

标签: 遍历文件
分享给朋友:

相关文章

react如何遍历

react如何遍历

遍历数组或对象的方法 在React中,遍历数组或对象通常用于渲染列表或动态生成内容。以下是几种常见的遍历方法: 使用map遍历数组map是遍历数组并返回新数组的高阶函数,适合渲染列表。 con…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

vue 实现文件下载

vue 实现文件下载

使用 window.open 方法 通过 window.open 直接打开文件链接触发下载,适用于已知文件 URL 的情况: window.open('文件URL', '_blank') 使用 &l…

vue中实现双重遍历

vue中实现双重遍历

双重遍历的实现方法 在Vue中实现双重遍历通常用于处理嵌套数据结构,例如二维数组或对象嵌套。以下是几种常见实现方式: 使用v-for嵌套 通过嵌套使用v-for指令可以实现双重遍历,适用于数组嵌套的…

vue前端实现文件预览

vue前端实现文件预览

Vue 前端实现文件预览的方法 图片预览 使用 <input type="file"> 结合 URL.createObjectURL() 实现本地图片预览: <template&g…

vue文件下载实现方式

vue文件下载实现方式

vue文件下载实现方式 使用a标签下载 通过创建a标签并设置download属性实现文件下载。适用于已知文件URL或Blob对象的情况。 // 方法1: 直接使用URL const download…