Backend Development 5 min read

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:

<code>&lt;?php
$dir = "path/to/directory";

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

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:

<code>&lt;?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} 不是一个目录";
}
?&gt;</code>

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.

backendPHPfilesystemis_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

login 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.