当前位置:首页 > 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

$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() 是更底层的函数,适合需要精细控制的情况。

$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";
    }
}

php实现文件遍历

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

相关文章

css文件怎么制作

css文件怎么制作

创建CSS文件的基本步骤 CSS文件用于定义网页的样式,可以与HTML文件分离,便于管理和维护。以下是创建CSS文件的方法: 新建文本文件 使用任意文本编辑器(如Notepad++、VS Code…

vue实现文件的上传

vue实现文件的上传

文件上传的基本实现 在Vue中实现文件上传通常结合HTML的<input type="file">元素和FormData对象。通过监听文件选择事件获取文件对象,再通过AJAX或axios发…

vue实现静态文件下载

vue实现静态文件下载

实现静态文件下载的方法 在Vue项目中实现静态文件下载可以通过多种方式完成,以下是几种常见的方法: 使用<a>标签下载 将静态文件放置在项目的public目录下,通过<a&g…

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import ja…

如何编译react文件

如何编译react文件

编译 React 文件的方法 使用 Create React App (CRA) Create React App 是官方推荐的快速搭建 React 项目的工具,内置了 Babel 和 Webpack…

vue实现文件功能

vue实现文件功能

Vue 实现文件上传功能 使用 Vue 实现文件上传功能可以通过原生 HTML 的 <input type="file"> 结合 Vue 的事件处理和 HTTP 请求库(如 Axios)来…