What if your program could avoid errors by simply knowing if a file is really there before using it?
Why File existence and info checks in PHP? - Purpose & Use Cases
Imagine you have a folder full of important documents and you need to find out if a specific file is there before opening it.
Doing this by opening each file one by one is tiring and slow.
Manually checking files means opening each file or guessing its name, which wastes time and can cause mistakes like trying to open a file that doesn't exist.
This can lead to errors or crashes in your program.
Using file existence and info checks lets your program quickly see if a file is there and get details about it without opening it.
This saves time and avoids errors by confirming the file's presence and properties first.
$file = 'data.txt'; // Try to open without checking $handle = fopen($file, 'r'); if (!$handle) { echo 'File not found!'; }
$file = 'data.txt'; if (file_exists($file)) { $size = filesize($file); echo "File size: $size bytes"; } else { echo 'File not found!'; }
This lets your programs handle files smartly and safely, avoiding crashes and making them more reliable.
When uploading a profile picture, your website checks if the file exists and is the right size before saving it, so users don't get errors or broken images.
Manually checking files is slow and error-prone.
File existence and info checks let programs verify files quickly and safely.
This makes your code more reliable and user-friendly.
Practice
Solution
Step 1: Understand the purpose of file_exists()
The function file_exists() returns true if the file or directory exists at the specified path.Step 2: Compare with other functions
Functions like is_file() check if the path is a file, filesize() returns size, and is_readable() checks permissions, but none check existence alone.Final Answer:
file_exists() -> Option CQuick Check:
Check existence = file_exists() [OK]
- Confusing is_file() with existence check
- Using filesize() to check existence
- Assuming is_readable() means file exists
Solution
Step 1: Recall the correct function name
PHP uses is_dir() to check if a path is a directory.Step 2: Verify syntax correctness
The function is called as is_dir($path); other options are invalid function names.Final Answer:
is_dir($path); -> Option BQuick Check:
Directory check = is_dir() [OK]
- Using non-existent functions like is_directory()
- Mixing up is_file() and is_dir()
- Missing parentheses in function call
$file = 'example.txt';
if (file_exists($file)) {
echo filesize($file);
} else {
echo 'File not found';
}Solution
Step 1: Check file existence
The code uses file_exists() to confirm 'example.txt' exists, which it does.Step 2: Output file size
Since the file exists, filesize($file) returns 150, which is printed.Final Answer:
150 -> Option AQuick Check:
File exists, output size = 150 [OK]
- Assuming filesize() works without checking existence
- Confusing filesize() output with file content
- Expecting 'File not found' when file exists
$filename = 'data.txt';
if (is_writeable($filename)) {
echo 'Writable';
} else {
echo 'Not writable';
}Solution
Step 1: Check function spelling
The correct function to check if a file is writable is is_writable(), not is_writeable().Step 2: Verify other syntax
Semicolons are present, variable quotes are valid, and is_writable() does check permissions.Final Answer:
The function name is misspelled; should be is_writable() -> Option DQuick Check:
Correct spelling = is_writable() [OK]
- Misspelling is_writable() as is_writeable()
- Thinking variable needs double quotes
- Confusing permission check with existence
Solution
Step 1: Understand requirements
We need to list files in 'docs/' that exist, are readable, and modified within last 24 hours (86400 seconds).Step 2: Analyze each option
$files = scandir('docs/'); foreach ($files as $file) { $path = 'docs/' . $file; if (file_exists($path) && is_readable($path) && (time() - filemtime($path) < 86400)) { echo $file . "\n"; } } correctly scans 'docs/', builds full path, checks file_exists(), is_readable(), and filemtime() against current time minus 86400 seconds. Other options miss one or more conditions or use wrong paths.Final Answer:
Option A code snippet -> Option AQuick Check:
Check existence + readability + recent mod = $files = scandir('docs/'); foreach ($files as $file) { $path = 'docs/' . $file; if (file_exists($path) && is_readable($path) && (time() - filemtime($path) < 86400)) { echo $file . "\n"; } } [OK]
- Not using full path when checking files
- Ignoring file modification time condition
- Checking is_writable() instead of is_readable()
Ready to prove it?
Pass the test and this pattern moves unknown
