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摘要生成函数(无乱码)
Feb 04 PHP
PHP 基于文件头的文件类型验证类函数
May 01 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
PHP函数getenv简介和使用实例
May 12 PHP
PHP小教程之实现链表
Jun 09 PHP
标准PHP的AES加密算法类
Mar 12 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
Laravel重写用户登录简单示例
Oct 08 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
PHP数组去重的更快实现方式分析
May 09 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 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图片缩放实现方法
2014/02/20 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
JavaScript 一道字符串分解的题目
2011/08/03 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
vue与django集成打包的实现方法
2019/11/11 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
python实现数独算法实例
2015/06/09 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
世界上第一个水枕头:Mediflow
2018/12/06 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
幼儿运动会邀请函
2014/01/17 职场文书
土地转让协议书范本
2014/04/15 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
消防演习感想
2015/08/10 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python