|
函数名:local_writeable($dir)
参数:$dir 等待检测的目录
文件:/install.php
返回值:1/0,即真或假。
作用:检测目录(文件夹)$dir是否有可读写执行权限。
有时候我们对一个网站目录需要有可读写执行权限,这样可生成网页或写入内容。
如何判断一个目录(文件夹)有读写权限?方法很简单只需要在这个目录(文件夹)创建一个文件试试,如果创建成功则说明这个目录可以读写。
特别是在安装程序里面一般在安装程序前都要对一些目录(文件夹)进行检测,以判断这些目录有没有读写权限,这样在安装程序时就可以在这些目录里面创建目录写文件了。
函数分析
1)设置默认返回值$writeable:
因为,我们不知道要检测的目录$dir是不是有权限,所以,在判断前往往先设置一下可能的值,这里假设要检测的目录$dir是不可写的,如果不可写再进行处理,如果可写的话再把$writeable的值重新赋值为1。
2)判断$dir目录是否存在:
- if(!is_dir($dir)) {
- @mkdir($dir, 0777);
- }
复制代码
如果要检测的目录$dir根本就不是一个目录(文件夹),则重新创建这个目录$dir。
这里使用了函数mkdir($dir,0777),这个函数第二个参数可以不写,默认就是这个参数,此函数的作用是创建可读写执行权限的目录$dir。
3)判断目录$dir是否可读写:
如果$dir是一个目录,即条件if(is_dir($dir))成立,则向这个目录里面写入文件test.txt试试,看看能否写入文件,如果可以把test.txt文件写入到目录$dir里面,则说明目录$dir可写,否则,目录$dir不可读写。
以写的方式打开文件test.txt:如果条件if(fopen("$dir/test.txt", 'w'))成立,则说明文件test.txt文件可写入目录$dir,从而说明了目录$dir是可写的。
既然,已经证明了$dir目录可读写,那么,就关闭打开的资源:fclose($fp);
最后,删除测试文件test.txt:unlink("$dir/test.txt");
然后,把$writeable的值重置为1:$writeable = 1;
否则,如果不能写入test.txt文件,则说明检测的目录$dir不能写入东西,从而说明此目录$dir不可写,故把$writeable设置成0。
4)最后,返回$writeable的值:
return $writeable;
例子
在根目录创建一个目录phpos,然后,设置其权限为可写,如下图所示:
调用函数测试:
<?php
- $dir = './phpos/';
- echo local_writeable($dir);
复制代码
结果:1
若设置phpos目录为不可写,则提示下面的错误码:Warning: fopen(./phpos/test.txt): failed to open stream: Permission denied in |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|