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
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
php 安全过滤函数代码
May 07 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
php建立Ftp连接的方法
Mar 07 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
PHP redis实现超迷你全文检索
Mar 04 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 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自动生成后台导航网址的最佳方法
2013/08/27 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
说一说Python logging
2016/04/15 Python
Python3 socket同步通信简单示例
2017/06/07 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
解决python对齐错误的方法
2020/07/16 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
培训讲师邀请函
2014/01/10 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2015年暑假工作总结
2015/07/13 职场文书
python实现简单的名片管理系统
2021/04/26 Python
如何用JS实现简单的数据监听
2021/05/06 Javascript
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers