PHP Filesystem is_writable() Function



The PHP Filesystem is_writable() function is used to check whether the specified file is writable. This function can return true if the filename exists and is writable. The filename argument may be a directory name that allows us to check if the directory is writable.

  • It returns E_WARNING on failure.
  • The clearstatcache() function is used to clear the cache because this function uses cache memory.
  • It returns false for non-existent files.

Syntax

Below is the syntax of the PHP Filesystem is_writable() function −

bool is_writable ($filename)

Parameters

Below is the only required parameter of the is_writable() function −

Sr.No Parameter & Description
1

$filename(Required)

It is the path to the file to check.

Return Value

The function returns TRUE if the file is writable or E_Warning on failure.

PHP Version

The is_writable() function was first introduced as part of core PHP 4 and work well with the PHP 5, PHP 7 and PHP 8.

Example

Let us say we have a file called phptest.txt in our current working directory or folder. So we will see how the PHP Filesystem is_writable() function can be used to check that our file is writable or not.

<?php
    $file = "/PhpProject/php/phptest.txt";
    if(is_writable($file)) {
        echo ("$file is writable");
    } else {
        echo ("$file is not writable");
    }
?> 

Output

This will produce the following result −

/PhpProject/php/phptest.txt is writable

Example

Here is another simple demonstration to see how the is_writable() function work to check multiple files are writable or not.

<?php
    $filename1 = 'myfile.txt';
    $filename2 = 'index.php';

    //Check that the first file is writable
    if(is_writable($filename1)) {
    echo "The first file $filename1 is writable.\n";
    } else {
    echo "The first file $filename1 is not writable.\n";
    }

    //Check that the second file is writable
    if(is_writable($filename2)) {
    echo "The second file $filename2 is writable.\n";
    } else {
    echo "The second file $filename2 is not writable.\n";
    }
?>

Output

Here is the outcome of the following code −

The first file myfile.txt is writable.
The second file index.php is not writable.

Example

In this PHP code, we will use is_writable() function and check that the file is writable or not also we will display its permissions.

<?php
    // Check perm of the given file 
    $perm = fileperms("/PhpProjects/myfile.txt"); 
    $permValue = sprintf("%o", $perm); 
    
    // Clearing the File Status Cache  
    clearstatcache(); 
    
    $filename = "/PhpProjects/myfile.txt"; 
    
    // Check that the file is writable or not 
    if(is_writable($myfile))  
    { 
    echo ("The $filename is writable and it has the following file permissions : $permValue"); 
    }  
    else 
    { 
    echo ("The $filename is not writable and it has the following file permissions : $permValue"); 
    } 
    
    // Clear the File Status Cache  
    clearstatcache();
?> 

Output

This will generate the below result −

The PhpProjects/myfile.txt is writable and it has the following file permissions : 100644 

Note

Using this function the name of a directory can also be used as a parameter which allow us for checking that the directory is writable or you do not have access.

Summary

The is_writable() method is a built-in function to check that the given file is writable or not. So inside the is_writable() function we can pass the name of the file as a parameter. And it returns True if the file has write permission.

php_function_reference.htm
Advertisements