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中操作MySQL数据库的一些要注意的问题
Oct 09 PHP
php zip文件解压类代码
Dec 02 PHP
php下连接mssql2005的代码
Jan 17 PHP
用PHP实现弹出消息提示框的两种方法
Dec 17 PHP
destoon各类调用汇总
Jun 20 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
php对文件夹进行相关操作(遍历、计算大小)
Nov 04 PHP
PHP常用技巧汇总
Mar 04 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
Jan 15 PHP
php统计数组不同元素的个数的实例方法
Sep 26 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人民币金额数字转中文大写的函数代码
2013/02/27 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
vue使用自定义指令实现拖拽
2021/01/29 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python操作xml文件详细介绍
2014/06/09 Python
理论讲解python多进程并发编程
2018/02/09 Python
python中的变量如何开辟内存
2018/06/26 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
python多线程http压力测试脚本
2019/06/25 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
英文版餐饮运营管理求职信
2013/11/06 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
投资意向书范本
2014/04/01 职场文书
外国人来华邀请函
2015/01/31 职场文书
小学生运动会广播
2015/08/19 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
Python字符串的转义字符
2022/04/07 Python