PHP's file system functions let you inspect, copy, move, and delete files and check their properties without shelling out to the OS.
PHP
Beginner
7 min read
File System Operations
Example
<?php
$file = '/var/data/report.pdf';
// Check existence
var_dump(file_exists($file)); // true/false
var_dump(is_file($file)); // true if it's a regular file
var_dump(is_dir($file)); // true if it's a directory
var_dump(is_readable($file)); // true if readable
var_dump(is_writable($file)); // true if writable
// File metadata
echo filesize($file); // size in bytes
echo filemtime($file); // last-modified timestamp
echo filetype($file); // "file", "dir", "link", etc.
// Path info
$info = pathinfo($file);
echo $info['dirname']; // /var/data
echo $info['basename']; // report.pdf
echo $info['filename']; // report
echo $info['extension']; // pdf
// Copy / move / delete
copy($file, '/backup/report.pdf');
rename($file, '/archive/report.pdf'); // also works as move
unlink('/tmp/old.txt'); // delete
// Create directories
mkdir('/var/data/uploads', 0755, true); // true = recursive
rmdir('/var/data/empty-dir'); // must be empty
// Temporary file
$tmp = tempnam(sys_get_temp_dir(), 'app_');
file_put_contents($tmp, 'temporary data');
// ... use it ...
unlink($tmp);
Pro Tip
Tip: file_exists() returns true for both files and directories. Use is_file() when you specifically need a regular file, and is_dir() when you need a directory.