在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;
}