PHP: Delete or unlink a file on the server

Contributor Icon Contributed by qmchenry  
Tag Icon Tagged: PHP programming  

PHP has the capacity to work with server-side files in many ways creating, opening, reading, and writing. When you are done with a file, it is a simple matter to delete it using a PHP script.


When a file is no longer needed on the server, as with temporary files, it can be deleted using the unlink() function. To delete a file referenced by the variable $tmpfile, use the following code:

$tmpfile = "/tmp/somefile.txt";
unlink($tmpfile);

The unlink() function returns true if the file was successfully deleted and false if there was a problem.

If there is a problem, it is most likely because you do not have permission to delete the file. In the case of UNIX filesystems, unlinking a file requires write access to the directory containing the file, not to the file itself. If PHP created the file initially, then this is not an issue since the directory must be writable to create a file.

If this doesn’t seem reasonable, think about a directory as a file which contains the information about the contents of the directory. To delete a file, no changes are required to the file, but the directory containing the file must be altered to reflect the deletion. Therefore, only the directory must be writable by the user in order to remove the file.

 

11 Comments -


  1. Anonymous said on January 12, 2009

    a nice n short article on how to delete a file using PHP codes. Good work. Thank you for sharing.

  2. Christopher said on April 20, 2009

    Sometimes it’s a good idea to check if the file exists first, then you won’t get a PHP error if the file you’re trying to delete is not there. Just add a simple IF statement to accomplish this:

    $tmpfile = “/full/path/to/delete-me.txt”;
    if (file_exists($tmpfile)) { unlink ($tmpfile); }

  3. Nitish said on May 22, 2009

    hmmm…. good post…

  4. Souvik Banerjee said on February 16, 2010

    What kind of advertisement is this… cant read the article… please remove it. or fix it.

  5. Anonymous said on April 21, 2010

    Excellent tip! That solved my problem in four files, accidentally created on my webhost, these files were not deleted in any FTP client (windows, linux, etc) because you have “” caracter in the file name and received the message 550 prohibited filename. With this tip, the files had been removed!

  6. good said on May 28, 2010

    erwtewtewrt
    wert

  7. Tshepo said on November 5, 2010

    Hi every one, I would like to know, how can I delete a file from a server? My problem actually lies on the path that I must specify so that when I issue the unlink() function it is able to find the specific file I’m referring to and delete it right away.

  8. Kashif Webpro1 said on December 13, 2010

    Simple & easy

  9. Dddd said on March 18, 2011

    kus ke bachchey.. teri bhen ko chodu..

  10. Homesh said on March 23, 2011

    well i have fix my problem…..

  11. Robert said on August 12, 2011

    simple and to the point, would be good to maybe expand this to show you how to delete an entry in a sql database? i.e the path to the file as well as the file itself

 

RSS feed for comments on this post. TrackBack URL

Leave a comment -