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者的疑难问答(2)
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
php url路由入门实例
Apr 23 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
Jul 29 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
使用PHP编写发红包程序
Jul 22 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP与SQL语句常用大全
Dec 10 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP 图片上传代码
2011/09/13 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php实现zip文件解压操作
2015/11/03 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
JS中表单的使用小结
2014/01/11 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python实现的计数排序算法示例
2017/11/29 Python
python实现飞机大战微信小游戏
2020/03/21 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
杰夫·班克斯男士服装网上商店:Jeff Banks
2019/10/24 全球购物
中学教师管理制度
2014/01/14 职场文书
竞选班委演讲稿
2014/04/28 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
导游词之日月潭
2019/11/05 职场文书
单身狗福利?Python爬取某婚恋网征婚数据
2021/06/03 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js