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