PHP写一个遍历文件夹的函数


在 PHP 中,我们可以使用内置的函数来遍历文件夹及其子文件夹中的文件。以下是一个简单的函数,用于遍历文件夹及其子文件夹中的所有文件:

<?php
function traverseFolder($folderPath) {
    // 检查文件夹是否存在
    if (!file_exists($folderPath)) {
        echo "指定的文件夹不存在!";
        return;
    }

    // 获取文件夹中的所有文件和子文件夹
    $directory = opendir($folderPath);

    while (($file = readdir($directory))!== false) {
        // 排除 "." 和 ".." 文件夹
        if ($file!= "." && $file!= "..") {
            // 构建文件或文件夹的完整路径
            $fullPath = $folderPath. "/". $file;

            // 判断是文件还是文件夹
            if (is_file($fullPath)) {
                echo "文件: ". $fullPath. "<br>";
            } else if (is_dir($fullPath)) {
                echo "文件夹: ". $fullPath. "<br>";
                // 递归调用函数遍历子文件夹
                traverseFolder($fullPath);
            }
        }
    }

    // 关闭文件夹
    closedir($directory);
}

// 调用函数遍历文件夹
traverseFolder("/path/to/folder");
?>

在这个函数中,我们首先检查指定的文件夹是否存在。如果不存在,函数将输出错误消息并退出。然后,我们使用opendir()函数打开文件夹,并使用readdir()函数遍历文件夹中的每个文件和子文件夹。在每次循环中,我们使用is_file()is_dir()函数判断当前项是文件还是文件夹,并输出相应的消息。如果是文件夹,我们使用traverseFolder()函数递归调用自身来遍历子文件夹。最后,我们使用closedir()函数关闭文件夹。

请注意,这个函数只能遍历文件夹及其子文件夹中的文件,而不能遍历子文件夹中的子文件夹。如果你需要遍历多层子文件夹,可以使用递归函数来实现。另外,在实际应用中,你可能需要根据需要添加一些错误处理和安全检查,以确保函数的正确性和安全性。

发表评论