php无限遍历目录示例


下面是一个PHP无限遍历目录的示例代码。这段代码使用了递归函数来遍历指定目录下的所有文件和子目录。请注意,为了防止无限递归(虽然这里我们讨论的是“无限遍历”,但在实际编程中,你需要考虑设置一个退出条件,比如最大深度或特定条件的文件/目录不遍历),我在代码中添加了一个简单的退出条件,即不遍历以`.`或`..`开头的目录(这通常是当前目录和上级目录的链接)。


<?php

function traverseDirectory($dir) {
    // 检查指定的目录是否存在
    if (!is_dir($dir)) {
        echo "目录不存在: " . $dir . "\n";
        return;
    }

    // 打开目录并读取其内容
    $files = scandir($dir);

    // 遍历目录中的文件和子目录
    foreach ($files as $file) {
        // 忽略"."和".."目录
        if ($file == '.' || $file == '..') {
            continue;
        }

        // 构建完整的文件路径
        $filePath = $dir . DIRECTORY_SEPARATOR . $file;

        // 如果是目录,则递归调用
        if (is_dir($filePath)) {
            echo "目录: " . $filePath . "\n";
            traverseDirectory($filePath);
        } else {
            // 否则,输出文件信息
            echo "文件: " . $filePath . "\n";
        }
    }
}

// 调用函数,假设我们要遍历的目录是'/path/to/your/directory'
traverseDirectory('/path/to/your/directory');

?>

请将`'/path/to/your/directory'`替换为你想要遍历的目录的实际路径。这个脚本将递归地列出指定目录下的所有文件和子目录。注意,在实际应用中,你可能需要根据需要调整这个脚本,比如添加对特定文件或目录的过滤,或者处理可能的权限问题。