win_is_writable()
Workaround for Windows bug in is_writable() function
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 interpret the OS ACL.
Хуков нет.
Возвращает
bool. Whether the path is writable.
Использование
win_is_writable( $path );
- $path(строка) (обязательный)
- Windows path to check for write-ability.
Заметки
| Смотрите: https://bugs.php.net/bug.php?id=27609 |
| Смотрите: https://bugs.php.net/bug.php?id=30931 |
Список изменений
| С версии 2.8.0 | Введена. |
Код win_is_writable() win is writable WP 7.1.4
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 ( false === $f ) {
return false;
}
fclose( $f );
if ( $should_delete_tmp_file ) {
unlink( $path );
}
return true;
}