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代码的53条建议
Mar 27 PHP
apache php模块整合操作指南
Nov 16 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
php中curl和file_get_content的区别
May 10 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
PHP生成条形码大揭秘
Sep 24 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP抽象类基本用法示例
Dec 28 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
PHP 中执行系统外部命令
2006/10/09 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python如何使用unittest测试接口
2018/04/04 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python实现直播推流效果
2019/11/26 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
安全生产专项整治方案
2014/05/06 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python