if (!function_exists('is_really_writable')){
/**
* PHP的is_writable()函数存在Bug,(1、Windows下,当文件为只读时,函数才返回
* false,返回true时,文件不一定可写;2、在unix中,php.ini开启safe_mode时,
* is_writable不可用)无法准确判断一个目录/文件是否可写,定义一个函数来判断目
* 录/文件是否绝对可写
* @param $file
* @return bool
*/
function is_really_writable($file)
{
if (DIRECTORY_SEPARATOR == '/' AND @ini_get('safe_mode') == false){
return is_writable($file);
}
if (is_dir($file)){
$file = rtrim($file, '/') . '/' . md5(mt_rand(1, 100) . mt_rand(1, 100));
if (($fp = @fopen($file, 'ab')) === false){
return false;
}
fclose($fp);
@chmod($file, 0777);
@unlink($file);
return true;
}elseif(!is_file($file) OR ($fp = @fopen($file, 'ab')) === false){
return false;
}
fclose($fp);
return true;
}
}