Whether you are just trying to keep your app from crashing or making sure your users’ uploads don’t accidentally overwrite each other’s files, php file_exists
is like a simple yet reliable tool in your PHP toolkit.
In this tutorial, you will learn what file_exists is and how it works. Let’s get started.
What is php file_exists?
php file_exists
is a built-in function. It takes a file path as input and checks if that file or directory is sitting there on your server, waiting to be used. If it’s there, file_exists
returns true
. If it’s not, you get false
. This might seem small, but it can prevent a ton of problems.
Whenever you’re handling user uploads, dynamic file includes, or any process where files might pop in and out file_exists can be fit for this task.
Here is its syntax:
file_exists($path);
Just put in the file path you want to check. If the file or directory is there, file_exists
will give you true
. If not, it’ll return false
. Here’s a quick example:
if (file_exists("example.txt")) {
echo "The file exists!";
} else {
echo "File not found.";
}
The file_exists doesn’t actually open the file. It just checks the file system to see if the file or directory is there where you specified. But here’s something to keep in mind: file_exists
is case-sensitive on Linux but case-insensitive on Windows. So if you’re working across different operating systems, double-check those file paths to prevent any issues.
Another thing else, file_exists
works for both files and directories. But, if you want to make sure you’re dealing with a file (not a directory), use file_exists
with is_file or is_dir to be extra sure.
In the following section, you will see more examples. Let’s move on.
Examples of PHP file_exists
In the example, we are going to prevent duplicate uploads:
$uploadDir = "uploads/";
$filename = $_FILES["userfile"]["name"];
$filepath = $uploadDir . $filename;
if (file_exists($filepath)) {
$newFileName = time() . "_" . $filename;
$newFilePath = $uploadDir . $newFileName;
move_uploaded_file($_FILES["userfile"]["tmp_name"], $newFilePath);
echo "File already exists, so it was saved as $newFileName.";
} else {
move_uploaded_file($_FILES["userfile"]["tmp_name"], $filepath);
echo "File uploaded successfully!";
}
file_exists
checks if the file name is already taken. If it is, the code adds a timestamp to create a unique name and saves it as a new file. So, no overwrites.
Here, we should check first if the file exists before including it in another PHP file:
$filename = "config.php";
if (file_exists($filename)) {
include $filename;
} else {
echo "Required configuration file is missing!";
}
With this code, you are safe from those annoying “file not found” errors. You’ll know right away if config.php
is missing.
Let’s summarize it.
Wrapping Up
PHP file_exists
is a simple way to check if a file or directory exists. Here’s a quick recap:
- Definition:
php file_exists
checks if a file or directory is present on the server. - Syntax: Just use
file_exists($path);
, where$path
is the file or directory you want to check. - How It Works: It verifies existence without actually opening the file.