PHP File() Handling & Functions

What is a File?

A file is simply a resource for storing information on a computer.

Files are usually used to store information such as:

  • Configuration settings of a program
  • Simple data such as contact names against the phone numbers.
  • Images, Pictures, Photos, etc.

PHP File Formats Support

PHP file functions support a wide range of file formats that include:

  • File.txt
  • File.log
  • File.custom_extension i.e. file.xyz
  • File.csv
  • File.gif, file.jpg etc
  • Files provide a permanent cost effective data storage solution for simple data compared to databases that require other software and skills to manage DBMS systems.
  • You want to store simple data such as server logs for later retrieval and analysis
  • You want to store program settings i.e. program.ini

PHP file() Function

PHP provides a convenient way of working with files via its rich collection of built in functions.

Operating systems such as Windows and MAC OS are not case sensitive while Linux or Unix operating systems are case sensitive.

Adopting a naming conversion such as lower case letters only for file naming is a good practice that ensures maximum cross platform compatibility.

Let’s now look at some of the most commonly used PHP file functions.

PHP file_exists() Function

This function is used to determine whether a file exists or not.

  • It comes in handy when we want to know if a file exists or not before processing it.
  • You can also use this function when creating a new file and you want to ensure that the file does not already exist on the server.

The file_exist function has the following syntax.

<?php
file_exists($filename); 
?>

HERE,

  • “file_exists()” is the PHP function that returns true if the file exists and false if it does not exist.
  • “$file_name” is the path and name of the file to be checked

The code below uses file_exists function to determine if the file my_settings.txt exists.

<?php
if (file_exists('my_settings.txt'))
 {    
        echo 'file found!';
 } 
else
 {     
        echo 'my_settings.txt does not exist';
  } 
?>

Save the above code in a file named file_function.php Assuming you saved the file in phptuts folder in htdocs, open the URL http://localhost/phptuts/file_function.php in your browser You will get the following results.

PHP file_exists() Function

PHP fopen() Function

The fopen function is used to open files. It has the following syntax

<?php
fopen($file_name,$mode,$use_include_path,$context);
 ?>

HERE,

  • “fopen” is the PHP open file function
  • “$file_name” is the name of the file to be opened
  • “$mode” is the mode in which the file should be opened, the table below shows the modes
Mode Description
r • Read file from beginning.
• Returns false if the file doesn’t exist.
• Read only
r+ • Read file from beginning
• Returns false if the file doesn’t exist.
• Read and write
w • Write to file at beginning
• truncate file to zero length
• If the file doesn’t exist attempt to create it.
• Write only
w+ • Write to file at beginning, truncate file to zero length
• If the file doesn’t exist attempt to create it.
• Read and Write
a • Append to file at end
• If the file doesn’t exist attempt to create it.
• Write only
a+ • Php append to file at end
• If the file doesn’t exist attempt to create it
• Read and write
  • “$use_include_path” is optional, default is false, if set to true, the function searches in the include path too.
  • “$context” is optional, can be used to specify the context support.

PHP fwrite() Function

The fwrite function is used to write files.

It has the following syntax

<?php
fwrite($handle, $string, $length);
?>

HERE,

  • “fwrite” is the PHP function for writing to files
  • “$handle” is the file pointer resource
  • “$string” is the data to be written in the file.
  • “$length” is optional, can be used to specify the maximum file length.

PHP fclose() Function

The fclose() function is used to close a file in php which is already open

It has the following syntax.

<?php
fclose($handle); 
?>

HERE,

  • “fclose” is the PHP function for closing an open file
  • “$handle” is the file pointer resource.

Let’s now look at an example that creates my_settings.txt.

We will use the following functions.

  • Fopen
  • Fwrite
  • fclose

The code below “create_my_settings_file.php” implements the above example.

Open a file
<?php 

$fh = fopen("my_settings.txt", 'w')

or

die("Failed to create file"); ?>
Closing a file
<?php

fclose($fh);

?>
Create File
<?php 

$fh = fopen("my_settings.txt", 'w') or die("Failed to create file"); 

$text = <<<_END 

localhost;root;pwd1234;my_database 

_END; 

fwrite($fh, $text) or die("Could not write to file"); 

fclose($fh); 

echo "File 'my_settings.txt' written successfully"; ?>    

Testing the code

Open the URL http://localhost/phptuts/create_my_settings.php in your browser.

You will get the following page

PHP fclose Function

Note: if your disk is full or you do not have permission to write files, you will get an error message.

Switch back to the URL http://localhost/phptuts/file_function.php .

What results do you get?

PHP fgets() Function

The fgets function is used to read php files line by line. It has the following basic syntax. fgets($handle); HERE,

  • “$fgets” is the PHP function for reading file lines
  • “$handle” is the file pointer resource.

Let’s now look at an example that reads my_settings.txt file using the fopen and fgets functions.

The code below read_my_settings.php implements the above example.

<?php
$fh = fopen("my_settings.txt", 'r') or die("File does not exist or you lack permission to open it");
$line = fgets($fh);
echo $line; fclose($fh);
 ?>

HERE,

  • “fopen” function returns the pointer to the file specified in the file path
  • “die()” function is called if an error occurs. It displays a message and exists execution of the script

PHP copy() Function

The PHP copy function is used to copy files. It has the following basic syntax. copy($file,$copied_file); HERE,

  • “$file” specifies the file path and name of the file to be copied.
  • “copied_file” specified the path and name of the copied file

The code below illustrates the implementation

<?php
copy('my_settings.txt', 'my_settings_backup.txt') or die("Could not copy file");
echo "File successfully copied to 'my_settings_backup.txt'"; 
?>

Deleting a file

The unlink function is used to delete the file. The code below illustrates the implementation.

<?php
if (!unlink('my_settings_backup.txt'))
{
     echo "Could not delete file";
 }
else
{
     echo "File 'my_settings_backup.txt' successfully deleted"; 
}
 ?>

PHP file_get_contents() Function

The file_get_contents function is used to read the entire file contents.

The code below illustrates the implementation.

The difference between file_get_contents and fgets is that file_get_contents returns the file data as a string while fgets reads the file line by line.

<?php
echo "<pre>"; // Enables display of line feeds
echo file_get_contents("my_settings.txt");
echo "</pre>"; // Terminates pre tag
?>

Summary

  • A file is a resource for storing data
  • PHP has a rich collection of built in functions that simplify working with files.
  • Common file functions include fopen, fclose, file_get_contents
  • The table below shows a summary of the functions covered
Function Description
File_exists Used to determine if a file exists or not
fopen Used to open a file. Returns a pointer to the opened file
fwrite Used to write to files
fclose Used to open closed files
fgets Used to read a file line by line
copy Used to copy an existing file
unlink Used to delete an existing file
file_get_contents Used to return the contents of a file as a string