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和XSL stylesheets转换XML文档
Oct 09 PHP
escape unescape的php下的实现方法
Apr 27 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
php中hashtable实现示例分享
Feb 13 PHP
PHP获取文件行数的方法
Jun 10 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
php实现留言板功能
Mar 05 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
php中的登陆login实例代码
2016/06/20 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
python多进程控制学习小结
2018/10/31 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
Java文件和目录(IO)操作
2014/08/26 面试题
主持人演讲稿范文
2013/12/28 职场文书
网络教育自我鉴定
2014/02/04 职场文书
六查六看六改心得体会
2014/10/14 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
雨花台导游词
2015/02/06 职场文书
行政处罚决定书
2015/06/24 职场文书
婚宴父母致辞
2015/07/27 职场文书