techmore.in

PHP - File Handling

File handling in PHP involves reading from and writing to files on the server or performing various operations like creating, deleting, and modifying files. PHP provides a rich set of functions and methods to handle files efficiently. Here’s a comprehensive guide to file handling in PHP:

1. Opening and Closing Files

To open a file in PHP, you use the fopen() function, which returns a file pointer/resource that is used to perform operations on the file. After performing operations, you should close the file using fclose() to free up resources.

Opening a File

php
<?php $filename = "example.txt"; $file = fopen($filename, "r") or die("Unable to open file!"); // Perform operations on the file fclose($file); // Close the file ?>

Modes for fopen()

  • "r": Read only. Starts at the beginning of the file.
  • "w": Write only. Truncates the file to zero length or creates a new file for writing.
  • "a": Write only. Opens and writes to the end of the file or creates a new file for writing.
  • "r+": Read/Write. Starts at the beginning of the file.
  • "w+": Read/Write. Truncates the file to zero length or creates a new file for reading and writing.
  • "a+": Read/Write. Opens and writes to the end of the file or creates a new file for reading and writing.

2. Reading from Files

PHP provides several functions to read data from files based on different needs.

fgets()

Reads a line from an open file.

php
<?php $filename = "example.txt"; $file = fopen($filename, "r") or die("Unable to open file!"); // Read lines until end of file while (!feof($file)) { echo fgets($file) . "<br>"; } fclose($file); ?>

fread()

Reads a specified number of bytes from a file.

php
<?php $filename = "example.txt"; $file = fopen($filename, "r") or die("Unable to open file!"); // Read 20 bytes from the file echo fread($file, 20); fclose($file); ?>

3. Writing to Files

PHP allows you to write data to files using functions like fwrite().

fwrite()

Writes to an open file.

php
<?php $filename = "newfile.txt"; $file = fopen($filename, "w") or die("Unable to open file!"); $text = "Hello, World!"; fwrite($file, $text); fclose($file); ?>

4. Appending to Files

To append data to the end of a file without truncating its contents, you can use "a" mode with fwrite().

php
<?php $filename = "existingfile.txt"; $file = fopen($filename, "a") or die("Unable to open file!"); $text = "New data appended!"; fwrite($file, $text); fclose($file); ?>

5. Checking File Existence

You can check if a file exists before attempting to open or modify it using file_exists().

php
<?php $filename = "example.txt"; if (file_exists($filename)) { echo "The file $filename exists."; } else { echo "The file $filename does not exist."; } ?>

6. Deleting Files

PHP provides unlink() to delete files from the server.

php
<?php $filename = "filetobedeleted.txt"; if (file_exists($filename)) { unlink($filename); echo "File $filename deleted successfully."; } else { echo "File $filename does not exist."; } ?>

7. File Handling Functions

PHP offers various functions to manipulate and interact with files, such as:

  • file_get_contents(): Reads entire file into a string.
  • file_put_contents(): Writes a string to a file.
  • rename(): Renames a file or directory.
  • filesize(): Gets the file size.
  • filemtime(), filectime(), fileatime(): Gets file modification, change, and access times respectively.

Example: Using file_get_contents() and file_put_contents()

php
<?php // Read file content $content = file_get_contents("example.txt"); echo $content; // Write content to a new file $newContent = "This is new content."; file_put_contents("newfile.txt", $newContent); ?>