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静态新闻列表自动生成代码
Jun 14 PHP
请php正则走开
Mar 15 PHP
PHP调用MySQL的存储过程的实现代码
Aug 12 PHP
php读取图片内容并输出到浏览器的实现代码
Aug 08 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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 URL验证正则表达式
2011/07/19 PHP
php实现的ping端口函数实例
2014/11/12 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
python实现斐波那契递归函数的方法
2014/09/08 Python
Python中字典映射类型的学习教程
2015/08/20 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python根据时间获取周数代码实例
2019/09/30 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python获取栅格点和面值的实现
2020/03/10 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
工商治理实习生的自我评价分享
2014/02/20 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
临床专业自荐信
2014/06/22 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
使用python求解迷宫问题的三种实现方法
2022/03/17 Python