Friday, October 24, 2025
HomeLanguagesHow to count files in a directory using PHP?

How to count files in a directory using PHP?

PHP contains many functions like count(), iterator_count(), glob(), openddir(), readdir(), scandir() and FilesystemIterator() to count number of files in a directory.
count() Function: The count() functions is an array function which is used to count all elements in an array or something in an object. This function uses COUNT_RECURSIVE as a mode to recursively count the array that is useful for counting all the elements of a multidimensional array.
Syntax: 

int count( mixed $array_or_countable, int $mode = COUNT_NORMAL )

glob() Function: The glob() function is a Filesystem function that searches all possible pathnames matching pattern according to the rules used by the libc glob() function.
Syntax:  

glob( string $pattern, int $flags = 0 )

Program 1: This program uses glob() and count() function to count all files within the directory.  

php




<?php
 
// Set the current working directory
$directory = getcwd()."/";
 
// Initialize filecount variable
$filecount = 0;
 
$files2 = glob( $directory ."*" );
 
if( $files2 ) {
    $filecount = count($files2);
}
 
echo $filecount . "files ";
 
?>


Output: 

20 files

openddir() Function: The openddir() function is used to open a directory handle. The path of the directory to be opened is sent as a parameter to the opendir() function and it returns a directory handle resource on success, or FALSE on failure.
Syntax:  

opendir( string $path, resource $context )

readdir() Function: The readdir() function is a directory function which reads the entries from directory handle those are returned in the order in which they are stored by the filesystem.
Syntax:  

readdir( resource $dir_handle )

Program 2: This program uses openddir() and readdir() function to count all files within the directory. 

php




<?php
 
// Set the current working directory
$dir = getcwd();
 
// Initialize the counter variable to 0
$i = 0;
 
if( $handle = opendir($dir) ) {
     
    while( ($file = readdir($handle)) !== false ) {
        if( !in_array($file, array('.', '..')) && !is_dir($dir.$file))
            $i++;
    }
}
 
// Display result
echo "$i files";
 
?>


Output: 

20 files

scandir() Function: The scandir() function is used to return an array of files and directories of the specified directory. The scandir() function lists the files and directories which are present inside a specified path.
Syntax:  

scandir( string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, resource $context )

Program 3: This program uses scandir() and count() function to count all files within the directory. 

php




<?php
 
// Set the current working directory
$directory = getcwd()."/";
  
// Returns array of files
$files1 = scandir($directory);
  
// Count number of files and store them to variable
$num_files = count($files1) - 2;
 
echo $num_files . " files";
 
?>


Output: 

20 files

FilesystemIterator() Function: The FilesystemIterator::__construct() function is used to create a new filesystem iterator from the path.
Syntax:  

FilesystemIterator::__construct( string $path, 
      int $flags = FilesystemIterator::KEY_AS_PATHNAME 
      | FilesystemIterator::CURRENT_AS_FILEINFO 
      | FilesystemIterator::SKIP_DOTS )

iterator_count() Function: The iterator_count() function is SPL is used to count the iterator elements.
Syntax:  

int iterator_count( $iterator )

Program 4: This program uses FilesystemIterator() and iterator_count() function to count all files within the directory.

php




<?php
 
$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
 
printf("%d files", iterator_count($fi));
 
?>


Output:  

20 files 
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS