Working with files is a fundamental part of PHP programming. Whether you are writing logs, creating reports, storing data, or generating downloadable files, you must understand how to properly open and close files in PHP.
This guide explains file modes, opening methods, closing methods, and best practices with real-world examples.
⭐ Why Open & Close Files in PHP?
Before you read or write a file, you must open it using PHP.
When you finish working with the file, you must close it so PHP releases the file resource.
Opening and closing files ensures:
- Safe access
- Preventing file corruption
- Preventing memory leaks
- Ensuring data is saved correctly
- Avoiding file lock issues
⭐ Opening a File in PHP
PHP uses the fopen() function to open files.
✔ Basic Syntax
$handle = fopen("filename.txt", "mode");
filename.txt→ File you want to openmode→ How you want to open it (read, write, append, etc.)
⭐ File Modes in PHP
| Mode | Meaning | Use Case |
|---|---|---|
"r" | Read only | File must exist |
"r+" | Read + write | File must exist |
"w" | Write only (truncate) | Clears old content |
"w+" | Read + write (truncate) | Clears old content |
"a" | Append only | Adds new content at end |
"a+" | Read + append | File pointer at end |
"x" | Create + write | Fails if file exists |
"x+" | Create + read/write | Fails if file exists |
"c" | Write (no truncate) | Creates if not exists |
"c+" | Read/write (no truncate) | Creates if not exists |
⭐ Examples of Opening a File
✔ 1. Open a file for reading
$handle = fopen("data.txt", "r");
✔ 2. Open a file for writing (erase old content)
$handle = fopen("notes.txt", "w");
✔ 3. Open a file for appending
$handle = fopen("log.txt", "a");
✔ 4. Create a file safely (fails if file exists)
$handle = fopen("newfile.txt", "x");
⭐ Reading from an Opened File
After opening, you can read using:
fread()
$handle = fopen("info.txt", "r");
$content = fread($handle, filesize("info.txt"));
echo $content;
fgets() → read line by line
$handle = fopen("data.txt", "r");
while (!feof($handle)) {
echo fgets($handle);
}
⭐ Writing to an Opened File
fwrite()
$handle = fopen("log.txt", "a");
fwrite($handle, "New log entry\n");
⭐ Closing a File in PHP
Once you finish reading or writing, close the file using:
fclose($handle);
This releases the file and ensures the data is written properly.
⭐ Example of Opening, Writing & Closing
$handle = fopen("example.txt", "w");
fwrite($handle, "Hello World!");
fclose($handle);
⭐ Full Example: Read File Safely
$handle = fopen("message.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
echo $line . "<br>";
}
fclose($handle);
} else {
echo "Unable to open file.";
}
⭐ Common Errors
❌ Warning: fopen(): failed to open stream
Happens when:
- File does not exist (for read mode)
- No permission to access
- Wrong path
❌ Not closing file
Can cause:
- File lock problems
- Memory issues
- Incomplete writes
⭐ Best Practices
✔ Always close files with fclose()
✔ Check for errors before reading or writing
✔ Use correct file mode
✔ Avoid writing sensitive data without permission checks
✔ Use filesize() carefully (empty files = 0 bytes)
✔ Use "a" for log files to avoid overwriting
Citations
🔗 View other articles about PHP:
http://savanka.com/category/learn/php/
🔗 External PHP Documentation:
https://www.php.net/manual/en/