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编程效率的方法
Nov 07 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
php实现简易聊天室应用代码
Sep 23 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP将字符串首字母大小写转换的实例
Jan 21 PHP
php修改数组键名的方法示例
Apr 15 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 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执行速度全攻略(上)
2006/10/09 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
php实现多城市切换特效
2015/08/09 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
使用Python处理BAM的方法
2018/09/28 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python实现维吉尼亚算法
2019/03/20 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
商场端午节活动方案
2014/01/29 职场文书
商场主管竞聘书
2014/03/31 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
导游词之贵州织金洞
2019/10/12 职场文书