在PHP中,可用is_writable()函数来判断一个 文件/目录 是否可写,详情如下:
参考
is_writable
(PHP 4, PHP 5)
is_writable — 判断给定的文件名是否可写
说明
bool is_writable ( string $filename )
如果文件存在并且可写则返回 TRUE。($filename 参数可以是一个目录名,即检查目录是否可写。 )
记住 PHP 也许只能以运行 webserver 的用户名(通常为 ‘nobody’)来访问文件。不计入安全模式的限制。
2$filename='test.txt';
3if(is_writable($filename)) {
4echo'The file is writable';
5 }else{
6echo'The file is not writable';
7 }
8 ?>
Example #1 is_writable() 例子
注意:is_writeable() 是 is_writable() 的别名!
+++++++++++++++++++++++++++++++++++++++++++++++++
但是,上面那个函数在PHP4中是有BUG的,尤其是在Windows服务器下判断不准,官方相关bug报告链接如下:
为了兼容各个操作系统,可自定义一个判断可写函数,代码如下:
/**
02 * 判断 文件/目录 是否可写(取代系统自带的 is_writeable 函数)
03 *
04 * @param string $file 文件/目录
05 * @return boolean
06 */
07functionnew_is_writeable($file){
08if(is_dir($file)){
09$dir=$file;
10if($fp= @fopen("$dir/test.txt",'w')) {
11 @fclose($fp);
12 @unlink("$dir/test.txt");
13$writeable= 1;
14 }else{
15$writeable= 0;
16 }
17 }else{
18if($fp= @fopen($file,'a+')) {
19 @fclose($fp);
20$writeable= 1;
21 }else{
22$writeable= 0;
23 }
24 }
25
26return$writeable;
27 }