File handling in PHP, allows to work with files and directories and its related operations like to create, write, append, modify, read and delete files.
PHP provides following in-built File handling functions
fopen() | Opens an existing file. |
fclose() | Closes a file. |
fread() | Reads data from a file. |
fwrite() | Writes data to a file. |
file_exists() | Checks if a file exists. |
unlink() | Deletes an existing file. |
Open a file
A file needs to be open first, before reading, writing and modifying. PHP provides fopen() function to open a file.
fopen syntax
fopen(filename, mode);
Example
<?php
// Open a file in read mode
$file = fopen("myfile.txt", "r");
if ($file) {
echo "File opened successfully!";
} else {
echo "Failed to open the file.";
}
?>
Close a file
When a file is opened in PHP, it must be closed. PHP provide fclose() to close an opened file.
fclose() takes on argument. which is fopen() variable.
<?php
// Open the file in read mode
$file = fopen("myfile.txt", "r");
if ($file) {
echo "File successfully opened";
}
fclose($file); // Closes the file
?>
File modes
w | Opens a file in writing mode. It creates a new file, if file not exists. It overwrite existing contents of file. |
r | Opens file in read mode. |
a | Append mode, This mode adds content to existing file contents. Do not overwrite file. |
w+ | Same as w mode, allows file reading and writing. |
r+ | File reading and writing mode. |
a+ | File reading and append mode. |
x | Create a new file in writing mode. |
x+ | Creates a new file for read and write. |
Reading a file
PHP provides following functions to read files
fread() | reads entire file content |
file_get_contents() | same as fread |
fgets() | Read file line by line |
fgetc() | Reads single character from file |
feof() | represent end of file |
fread()
Below Example reads the entire file content.
<?php
$f = fopen("myfile.txt", "r");
$txt = fread($f, filesize("myfile.txt"));
echo $txt;
fclose($f);
?>
Read file Line by line
fgets() function reads file line by line.
<?php
$f = fopen("myfile.txt", "r");
if ($f) {
while (($ln = fgets($f)) !== false) {
echo $ln . "<br>";
}
fclose($f);
}
?>
Read Character by Character from file
fgetc() reads a single character, use a loop to read an entire file character by character.
<?php
$f = fopen("myfile.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($f)) {
echo fgetc($f);
}
fclose($f);
?>
Write a file
fwrite() in PHP allows to write in an opened file. To write in a file it should be opened in “w” (write) or “a” (append) mode.
<?php
$f = fopen("myfile.txt", "w") or die("Unable to open file");
$txt = "PHP\n";
fwrite($f, $txt);
$txt = "Javascript\n";
fwrite($f, $txt);
$txt = "HTML\n";
fwrite($f, $txt);
fclose($f);
?>
Append a file
To add data to an already existing file, a file should be opened in “a” (append) mode.
<?php
$f = fopen("myfile.txt", "a") or die("Unable to open file");
$txt = "CSS\n";
fwrite($f, $txt);
$txt = "Jquery\n";
fwrite($f, $txt);
fclose($f);
?>
Deleting Files in PHP
unlink() function is used to delete a file in PHP.
<?php
if (!unlink("myfile.txt"))
echo ("File not deleted, due to error");
else
echo ("File successfully deleted");
?>