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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
set_include_path在win和linux下的区别
Jan 10 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
ThinkPHP模板IF标签用法详解
Jul 01 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
php时间戳转换代码详解
Aug 04 PHP
解决laravel查询构造器中的别名问题
Oct 17 PHP
PHP8.0新功能之Match表达式的使用
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 采集程序 常用函数
2008/12/18 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
非常实用的php验证码类
2016/05/15 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
JS 实现完美include载入实现代码
2010/08/05 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
python解析json实例方法
2013/11/19 Python
Python的迭代器和生成器使用实例
2015/01/14 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
python删除列表内容
2015/08/04 Python
详解Python 切片语法
2019/06/10 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Python的Lambda函数用法详解
2019/09/03 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
一些PHP的面试题
2015/05/06 面试题
数据员岗位职责
2013/11/19 职场文书
大专生的学习自我评价
2013/12/04 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python