win_is_writable( string $path )
Workaround for Windows bug in is_writable() function
Contents
Description Description
PHP has issues with Windows ACL’s for determine if a directory is writable or not, this works around them by checking the ability to open files rather than relying upon PHP to interprate the OS ACL.
See also See also
Parameters Parameters
- $path
-
(string) (Required) Windows path to check for write-ability.
Return Return
(bool) Whether the path is writable.
Source Source
File: wp-includes/functions.php
function win_is_writable( $path ) { if ( $path[ strlen( $path ) - 1 ] == '/' ) { // if it looks like a directory, check a random file within the directory return win_is_writable( $path . uniqid( mt_rand() ) . '.tmp' ); } elseif ( is_dir( $path ) ) { // If it's a directory (and not a file) check a random file within the directory return win_is_writable( $path . '/' . uniqid( mt_rand() ) . '.tmp' ); } // check tmp file for read/write capabilities $should_delete_tmp_file = ! file_exists( $path ); $f = @fopen( $path, 'a' ); if ( $f === false ) { return false; } fclose( $f ); if ( $should_delete_tmp_file ) { unlink( $path ); } return true; }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.8.0 | Introduced. |