Chapter 24. Directories
24.0. Introduction
A filesystem stores a lot of additional information about files aside from their actual contents. This information includes such particulars as the file size, directory, and access permissions. If you’re working with files, you may also need to manipulate this metadata. PHP gives you a variety of functions to read and manipulate directories, directory entries, and file attributes. Like other file-related parts of PHP, the functions are similar to the C functions that accomplish the same tasks, with some simplifications.
Files are organized with inodes. Each file (and other parts of the filesystem, such as directories, devices, and links) has its own inode. That inode contains a pointer to where the file’s data blocks are as well as all the metadata about the file. The data blocks for a directory hold the names of the files in that directory and the inode of each file.
PHP provides a few ways to look in a directory to see what
files it holds. The DirectoryIterator
class (available in PHP
5 and later) provides a comprehensive object-oriented interface for
directory traversal. Example 24-1 uses
DirectoryIterator
to print out the
name of each file in a directory.
<?php foreach (new DirectoryIterator('/usr/local/images') as $file) { print $file->getPathname() . "\n"; } ?>
The opendir()
, readdir()
, and
closedir()
functions offer a
procedural approach to the same task, as demonstrated in Example 24-2. Use opendir() ...
Get PHP Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.