PHP file_exists function tutorial shows how to check if files exist in PHP. Learn file_exists with practical examples.
last modified April 3, 2025
The PHP file_exists function checks whether a file or directory exists. It’s essential for file operations to avoid errors when accessing nonexistent files.
The file_exists function checks if a file or directory exists at the specified path. It returns true if the file/directory exists, false otherwise.
Syntax: file_exists(string $filename): bool. The function works with both files and directories, and accepts relative and absolute paths.
This shows the simplest usage of file_exists to check a file.
basic_file_exists.php
<?php
declare(strict_types=1);
$file = “example.txt”;
if (file_exists($file)) { echo “The file $file exists”; } else { echo “The file $file does not exist”; }
This checks if “example.txt” exists in the current directory. The function returns a boolean that we use in a conditional statement.
file_exists works with absolute paths to specific locations.
absolute_path.php
<?php
declare(strict_types=1);
$file = “/var/www/html/config.ini”;
if (file_exists($file)) { echo “Configuration file found”; } else { echo “Configuration file missing”; }
Here we check for a file at an absolute path. This is useful when you need to verify system files or files at specific locations.
The function can also check if a directory exists, not just files.
directory_check.php
<?php
declare(strict_types=1);
$dir = “uploads”;
if (file_exists($dir) && is_dir($dir)) { echo “The directory $dir exists”; } else { echo “The directory $dir does not exist”; }
We combine file_exists with is_dir to specifically check for directories. This ensures we’re checking a directory, not a file.
file_exists doesn’t work with HTTP URLs - it’s for local files only.
url_check.php
<?php
declare(strict_types=1);
$url = “https://example.com/image.jpg";
if (file_exists($url)) { echo “This will never be true for HTTP URLs”; } else { echo “Use file_get_contents or cURL for remote files”; }
This demonstrates that file_exists only works with local filesystem paths. For URLs, you need different functions like file_get_contents.
File permissions can affect file_exists results.
permissions_check.php
<?php
declare(strict_types=1);
$restricted = “/etc/shadow”;
if (file_exists($restricted)) { echo “File exists but you may not have access”; } else { echo “File may exist but is inaccessible”; }
Even if a file exists, PHP might not have permission to access it. The function may return false for files the web server user can’t read.
Combine Checks: Use with is_file/is_dir for specific checks.
Error Handling: Implement proper error handling around file ops.
Security: Validate and sanitize file paths before checking.
Caching: Be aware PHP may cache file_exists results.
Performance: Avoid excessive checks in loops.
This tutorial covered the PHP file_exists function with practical examples showing its usage for checking file and directory existence.
My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.