At some point in time, you are almost certainly going to come into contact with file permissions: either you will not have the necessary permissions, or you want to set your own permissions on files. If you do not have permissions to work with a file, that is just something you will have to live with - there is no way to make PHP use files that it is not permitted to use.

You can avoid embarrassing error messages by first using is_readable() and is_writeable() - you should only try to write to files you know you have permission for, so check that you the right permissions before you attempt any further action. Note that these functions check first whether the filename passed exists or not, and will return false (as opposed to an error) if it does not.

Here is an example of is_readable() in action:

    $filename = 'c:\boot.ini'; // Windows
    $filename = '/etc/passwd'; // Unix
    if (is_readable($filename)) {
        print file_get_contents($filename);
    } else {
        print 'File not readable!';


Want to learn PHP 7?

Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!

If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: Setting permissions >>

Previous chapter: Locking files with flock()

Jump to:


Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.