在PHP中,可用is_writable()函数来判断一个 文件/目录 是否可写,用是否可生成文件的方式判断目录是否可写;网上的一些代码大多数能判断linux系统,但windows服务器下判断不准确。
下面的代码兼容windows和linux判断文件或目录是否可写:
/* 判断 文件/目录 是否可写(取代系统自带的 is_writeable 函数)
* file 文件/目录
* 返回true或false
*/
function isWritable($file){
if(is_dir($file)){
$dir = $file;
if ($fp = @fopen("$dir/test.txt", 'w')) {
@fclose($fp);
@unlink("$dir/test.txt");
$writeable = true;
} else {
$writeable = false;
}
} else {
if ($fp = @fopen($file, 'a+')) {
@fclose($fp);
$writeable = true;
} else {
$writeable = false;
}
}
return $writeable;
}