Basic PHP File Handling — Create, Open, Read, Write, Append, Close, and Delete

Written by David Walsh on December 20, 2007 · 23 Comments

I don't do a great deal of file handling in my PHP code -- most of my customers don't have a need for it or there's no room for file creation in the already tight budget. On the rare occasion that I do need to manipulate files, I keep the following tip sheet.

Create a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); //implicitly creates file

Open a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); //open file for writing ('w','r','a')...

Read a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'r');
$data = fread($handle,filesize($my_file));

Write to a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
$data = 'This is the data';
fwrite($handle, $data);

Append to a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'a') or die('Cannot open file:  '.$my_file);
$data = 'New data line 1';
fwrite($handle, $data);
$new_data = "\n".'New data line 2';
fwrite($handle, $new_data);

Close a File

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
//write some data here
fclose($handle);

Delete a File

$my_file = 'file.txt';
unlink($my_file);

Comments

  1. your work is very good,but need your in creating my website about cricket

  2. sebouneeeet April 3, 2010

    To avoid warnings, not forget if(!file_exists(‘myfile.txt’)) ;)

  3. To avoid warnings, not forget if(!file_exists(‘myfile.txt’)) ;)
    your work is very good,but need your in creating my website about cricket

  4. Simple, but usefull!

  5. TitoChhabra September 30, 2011

    Hello Everyone,
    File handling functions in PHP are extremely useful and userfriendly.PHP includes a lot of built-in functions for handling files and directories. You can read, write, delete, and get lots of information on files through the use of these functions…………… for more details please check out the following link….

    http://mindstick.com/Articles/07d7e4cf-b11c-49ea-8f4f-27c2e7f67c09/?File%20Handling%20in%20PHP

    Thanks !!!!

  6. Quite useful! Better to add the modes of the files. So that a person can understand more about php file handling… Thanks

  7. This is basic stuff. How about a script for updating a record in an ASCII flat file?

  8. so useful for freshers in php

  9. Gary Paul December 30, 2012

    Once again, I need a question answered and I find my way to David’s site. Thanks for all your help.

    Gary

  10. Some Guy February 6, 2013

    Nice and concise! Definitely bookmarking. +1

  11. Some Guy February 6, 2013

    Just found something out thought I’d post here for everyone else,
    To read a file line by line use fgets($file_handle)

    $file_handle = fopen(“myfile”, “r”);
    while (!feof($file_handle)) {
    $line = fgets($file_handle);
    echo $line;
    }
    fclose($file_handle);

  12. Saleem April 3, 2013

    so useful for freshers in php

  13. Nice tutorial an am preparing this and i have an Interview next week :-)

  14. Thanks for making this nice tutorial and i am learning this. I only know to handle file via Control Panel i will learn it and try all those in a local server first

  15. Short and to the point, thanks, exactly what I was looking for. Much easier to delete a file than I thought, but what are your thoughts on security? Does this have any gaping security holes?

  16. Ok I have the code

    $my_file = 'file.txt';
    $handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
    $data = 'This is the data';
    fwrite($handle, $data);
    

    And When I See if it works I geta

    Parse error: syntax error, unexpected '$my_file' (T_VARIABLE)
    
  17. Bolivia Diablo December 13, 2013

    Braydon, you’re probably missing a semi-colon in the line that comes before the code shown in your comment.

  18. how come my output file has bo breaks? it is writing everything as a single line.

  19. how come my output file has no breaks? it is writing everything as a single line. I want output like this:

    Line1

    Line2:

    Line3

    ……..

  20. raja rajan January 23, 2014

    hmm.make it simple

Be Heard

Tip: Wrap your code in <pre> tags or link to a GitHub Gist!

Use Code Editor
Older
Return Random Records in MySQL
Newer
Weekend Links - Good Web Design, CSS Working Group, Body ID, IE8 Acid2, DOMAssistant 2.5, Google Analytics, Wii Opera SDK