Using PHP's is_dir() Function to Check and Traverse Directories

This article explains PHP's is_dir() function, demonstrates how to determine whether a given path is a directory, and provides practical code examples for simple checks and recursive directory traversal, highlighting important usage considerations and related filesystem functions.

php Courses
php Courses
php Courses
Using PHP's is_dir() Function to Check and Traverse Directories

PHP is a widely used server‑side scripting language, and the is_dir() function is a built‑in utility that determines whether a specified path refers to a directory, returning a boolean value.

By calling is_dir() you can differentiate files from folders, which is essential in file‑management systems and many other applications that need to validate user‑provided paths.

Below is a basic example that checks a single path and prints whether it is a directory:

<?php
$dir = "path/to/directory";

// Check if the path is a directory
if (is_dir($dir)) {
    echo "路径 {$dir} 是一个目录";
} else {
    echo "路径 {$dir} 不是一个目录";
}
?>

The script first stores the path in $dir, then uses is_dir() to test it; a true result prints a message confirming the path is a directory, otherwise it reports it is not.

For more complex scenarios, such as traversing all files and sub‑directories, you can combine is_dir() with opendir(), readdir(), and closedir(). The following example demonstrates this process:

<?php
$dir = "path/to/directory";

// Check if the path is a directory
if (is_dir($dir)) {
    // Open the directory
    if ($dh = opendir($dir)) {
        // Loop through entries
        while (($file = readdir($dh)) !== false) {
            // Skip '.' and '..'
            if ($file == "." || $file == "..") {
                continue;
            }
            // Build full path
            $path = $dir . '/' . $file;
            // Determine if entry is a directory or file
            if (is_dir($path)) {
                echo "{$path} 是一个目录";
            } else {
                echo "{$path} 是一个文件";
            }
        }
        // Close the directory handle
        closedir($dh);
    }
} else {
    echo "路径 {$dir} 不是一个目录";
}
?>

This script first verifies the target is a directory, opens it, iterates over each entry while ignoring the special '.' and '..' entries, constructs the full path for each item, and uses is_dir() again to decide whether the item is a sub‑directory or a file, outputting the appropriate message before finally closing the directory handle.

When using is_dir(), ensure the path exists and is accessible; otherwise the function cannot operate correctly.

In summary, the is_dir() function is a simple yet powerful tool for PHP developers to perform directory checks and to build more advanced file‑system operations such as recursive traversal.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Filesystemis_dirdirectory check
php Courses
Written by

php Courses

php中文网's platform for the latest courses and technical articles, helping PHP learners advance quickly.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.