php中判断文件空目录是否有读写权限的函数代码


Posted in PHP onAugust 07, 2012

is_writable用来处理,记住 PHP 也许只能以运行 webserver 的用户名(通常为 \'nobody\')来访问文件。不计入安全模式的限制。
Example #1 is_writable() 例子

<?php 
$filename = 'test.txt'; 
if (is_writable($filename)) { 
echo 'The file is writable'; 
} else { 
echo 'The file is not writable'; 
} 
?>

上面的函数有一个问题就是filename 必需。规定要检查的文件 ,必须是文件啊,目录不可判断,下面我们来判断空目录。
实例1
该功能非常常用,特别在一些需要生成静态文件的项目中,一个目录是否可以,关乎到是否对该目录有创建文件删除文件的权限
/* 
问题出现:如何检查一个目录是否可写,如何目录下还有目录和文件,那么都要检查 
思路: 
(1)首先先写出检查空目录是否可写的算法: 
在该目录中生成一个文件,如果不能生成,表明该目录没有写的权限 
(2)使用递归的办法来进行检查 
代码实现: 
*/ 
set_time_limit(1000); 
function check_dir_iswritable($dir_path){ 
$dir_path=str_replace('\','/',$dir_path); 
$is_writale=1; 
if(!is_dir($dir_path)){ 
$is_writale=0; 
return $is_writale; 
}else{ 
$file_hd=@fopen($dir_path.'/test.txt','w'); 
if(!$file_hd){ 
@fclose($file_hd); 
@unlink($dir_path.'/test.txt'); 
$is_writale=0; 
return $is_writale; 
} 
$dir_hd=opendir($dir_path); 
while(false!==($file=readdir($dir_hd))){ 
if ($file != "." && $file != "..") { 
if(is_file($dir_path.'/'.$file)){ 
//文件不可写,直接返回 
if(!is_writable($dir_path.'/'.$file)){ 
return 0; 
} 
}else{ 
$file_hd2=@fopen($dir_path.'/'.$file.'/test.txt','w'); 
if(!$file_hd2){ 
@fclose($file_hd2); 
@unlink($dir_path.'/'.$file.'/test.txt'); 
$is_writale=0; 
return $is_writale; 
} 
//递归 
$is_writale=check_dir_iswritable($dir_path.'/'.$file); 
} 
} 
} 
} 
return $is_writale; 
}

上面实例主要是fopen去在目录创建文件或在文件中写内容,这样就可以判断目录的读写权限了。
PHP 相关文章推荐
十天学会php之第六天
Oct 09 PHP
实时抓取YAHOO股票报价的代码
Oct 09 PHP
PHP图片上传类带图片显示
Nov 25 PHP
PHP一些有意思的小区别
Dec 06 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
ThinkPHP快速入门实例教程之数据分页
Jul 01 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
WAF的正确bypass
Jan 05 PHP
Yii框架页面渲染操作实例详解
Jul 19 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
Aug 06 #PHP
php一个找二层目录的小东东
Aug 02 #PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 #PHP
PHP服务器页面间跳转实现方法
Aug 02 #PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 #PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 #PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 #PHP
You might like
php addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP环境搭建(php+Apache+mysql)
2016/11/14 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
nodejs更改项目端口号的方法
2018/05/13 NodeJs
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
Python类的基础入门知识
2008/11/24 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python实现一个猜拳游戏
2020/04/05 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
实习教师自我鉴定
2013/09/27 职场文书
新手上路标语
2014/06/20 职场文书
高效课堂标语
2014/06/26 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
领导班子三严三实对照检查材料
2014/09/25 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
检讨书格式范文
2015/05/07 职场文书
工会文体活动总结
2015/05/07 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
运动会加油稿50字
2015/07/21 职场文书
高中化学教学反思
2016/02/22 职场文书
2019各种保证书范文
2019/06/24 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android