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 相关文章推荐
数据库的日期格式转换
Oct 09 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 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
phpmyadmin的#1251问题
2006/11/25 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
js实现图片轮播效果
2015/12/19 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
VUE重点问题总结
2018/03/19 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
python文件的md5加密方法
2016/04/06 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python对文件的操作方法汇总
2020/02/28 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
黄继光的英雄事迹材料
2014/02/13 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle