走过平凡人生、留下平凡足迹 注册 | 登陆

FileSystem类使用指南

介绍

FileSystem类没有使用类的方式来进行构造,只是定义了两个简化文件系统操作的函数。
所属文件:FLEA/FLEA/Helper/FileSystem.php

==============================================================

mkdirs()

函数原型:

/**
* 创建一个目录树
*
*/
function mkdirs($dir, $mode = 0777)

参数说明:

$dir:路径参数,使用的是象/var/www/htdocs这样的绝对地址参数。
$mode:目录访问权限属性设置参数,主要在linux/Uinx系统下使用,Windows下使用可忽略该参数。该参数默认值为0777
返回值:如果正确创建了目录树,则返回true,否则为false

**注意,在创建目多级录树时,必须使用默认值(0777),且必须确保父目录的访问权限属性为0777

使用举例:

=============================================================

代码:
mkdirs('/var/www/htdocs/3rd');

rmdirs()

函数原型:

/**
* 删除指定目录及其下的所有文件和子目录
*
*/
function rmdirs($dir)

参数说明:

$dir:路径参数,使用的是象/var/www/htdocs这样的绝对地址参数。
返回值:正确删除返回true,否则返回false。

**注意:使用该函数要非常非常小心,避免意外删除重要文件。而且为了确保rmdirs()函数能够使用正常,必须保证指定 的目录具有正确的读写访问权限。

使用举例:

代码:
rmdirs('/path/to/my_dir');

==============================================================
mkdirs()函数实际使用测试:

先在Linux主机的web服务器根目录(/home/www/htdocs)下创建一个测试目录mkdirs_test,

 
[root@www htdocs]# mkdir mkdirs_test

查看目录mkdirs_test的权限

 
[root@www htdocs]# ll -d mkdirs_test

显示的访问权限如下:

 
drwxr-xr-x  2 root root 4096 Apr  5 12:21 mkdirs_test

修改mkdirs_test目录的访问权限为777:

 
[root@www htdocs]# chmod 777 mkdirs_test

查看修改后的访问权限:

 
[root@www htdocs]# ll -d mkdirs_test

显示修改后的访问权限:

 
drwxrwxrwx  2 root root 4096 Apr  5 12:21 mkdirs_test

把FileSystem.php文件及mkdirstest.php测试文件上传到该目录下。

mkdirstest.php文件代码:

PHP代码
  1. <?php   
  2. include('FileSystem.php');   
  3. echo "测试PHP的内部函数mkdir正确创建目录时的返回值:<br>";   
  4. $m = mkdir('/home/www/htdocs/mkdirs_test/1');   
  5. echo $m . "<br>";   
  6. echo "测试PHP的内部函数mkdir函数创建目录不正确时的返回值:<br>";   
  7. $m = mkdir('/home/www/htdocs/mkdirs_test/1');   
  8. echo $m . "<br>";   
  9. echo "测试mkdirs函数正确创建目录时的返回值:<br>";   
  10. $dir = '/home/www/htdocs/mkdirs_test/1rd';   
  11. $m = mkdirs($dir);   
  12. echo $m . "<br>";   
  13. echo "测试mkdirs函数创建目录不正确时的返回值:<br>";   
  14. $dir = '/home/www/htdocs/mkdirs_test/1rd';   
  15. $m = mkdirs($dir);   
  16. echo $m . "<br>";   
  17. echo "测试mkdirs函数传入$mode=0644参数创建2rd子目录:<br>";   
  18. $dir = '/home/www/htdocs/mkdirs_test/2rd';   
  19. $m = mkdirs($dir, 0644);   
  20. echo $m . "<br>";   
  21. echo "测试mkdirs函数创建多级子目录的能力:<br>";   
  22. $dir = '/home/www/htdocs/mkdirs_test/3rd/4rd/5rd';   
  23. $m = mkdirs($dir);   
  24. echo $m . "<br>";   
  25. echo "测试mkdirs函数创建多级子目录及设置其访问权限属性的能力:<br>";   
  26. $dir = '/home/www/htdocs/mkdirs_test/6rd/7rd/8rd';   
  27. $m = mkdirs($dir, 0644);   
  28. echo $m;   
  29. ?>   

查看一下当前目录的文件情况:

 
[root@www mkdirs_test]# ll
total 16
-rwxrw-r--  1 www  www  2082 Apr  3 11:16 FileSystem.php
-rwxrw-r--  1 www  www  182 Apr  5 12:53 mkdirstest.php

由文件访问的权限属性说明其他用户可读,因此可以打开浏览器进行测试了。

运行mkdirstest.php文件后,浏览器显示的结果:

 
测试PHP的内部函数mkdir正确创建目录时的返回值:
1
测试PHP的内部函数mkdir函数创建目录不正确时的返回值:

Warning: mkdir(/home/www/htdocs/mkdirs_test/1): File exists in /home/www/htdocs/mkdirs_test/mkdirstest.php on line 7

测试mkdirs函数正确创建目录时的返回值:
1
测试mkdirs函数创建目录不正确时的返回值:
1
测试mkdirs函数传入=0644参数创建2rd子目录:
1
测试mkdirs函数创建多级子目录的能力:
1
测试mkdirs函数创建多级子目录及设置其访问权限属性的能力:

Warning: mkdir(/home/www/htdocs/mkdirs_test/6rd/7rd): Permission denied in /home/www/htdocs/mkdirs_test/FileSystem.php on line 35

Warning: mkdir(/home/www/htdocs/mkdirs_test/6rd/7rd/8rd): Permission denied in /home/www/htdocs/mkdirs_test/FileSystem.php on line 35

查看目录情况:

 
[root@www mkdirs_test]# ll
total 56
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:21 1
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:21 1rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:21 2rd
drwxr-xr-x  3 nobody 4294967295 4096 Apr  5 18:21 3rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:21 6rd
-rwxrw-r--  1 www    www        2082 Apr  3 11:16 FileSystem.php
-rwxrw-r--  1 www    www         989 Apr  5 18:21 mkdirstest.php

[root@www mkdirs_test]# ll 3rd
total 8
drwxr-xr-x  3 nobody 4294967295 4096 Apr  5 18:01 4rd

[root@www mkdirs_test]# cd 3rd
[root@www 3rd]# ll 4rd
total 8
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:01 5rd

[root@www mkdirs_test]# ll 6rd
total 0

运行结果说明:
1、PHP的内部函数mkdir正确创建了子目录1,返回值为1。
2、PHP的内部函数mkdir重复创建子目录1时不正确,没有返回值,但出现警告。
3、mkdirs函数正确创建了子目录1rd,返回值为1。
4、mkdirs函数重复创建子目录1rd时,返回值为1,且没有警告。
5、mkdirs函数传入$mode=0644参数创建2rd子目录正确,返回值为1。
6、mkdirs函数创建正确创建了多级子目录,返回值为1。
7、mkdirs函数传入$mode=0644参数创建多级子目录时,只创建了第一级子目录,第二、第三级不能创建。说明在使用mkdirs函数时,必须确保上级目录的访问权限属性必须为0777。

==============================================================
rmdirs()函数实际使用测试:

上传rmdirstest.php文件到/home/www/htdocs/mkdirs_test目录。

rmdirstest.php文件代码:

复制内容到剪贴板
代码:
<?php
include('FileSystem.php');
rmdirs('/home/www/htdocs/mkdirs_test/3rd');
echo "执行完毕。";
?>

运行前的目录情况:

 
[root@www mkdirs_test]# ll
total 64
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:56 1
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:56 1rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:56 2rd
drwxr-xr-x  3 nobody 4294967295 4096 Apr  5 18:56 3rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:56 6rd
-rwxrw-r--  1 www    www        2082 Apr  3 11:16 FileSystem.php
-rwxrw-r--  1 www    www         989 Apr  5 18:21 mkdirstest.php
-rwxrw-r--  1 www    www         102 Apr  5 18:55 rmdirstest.php

3rd子目录里用touch命令创建了三个空文件。

 
[root@www mkdirs_test]# ll 3rd
total 20
-rw-r--r--  1 nobody nobody    0 Apr  5 18:57 1
-rw-r--r--  1 nobody nobody    0 Apr  5 18:57 2
-rw-r--r--  1 nobody nobody    0 Apr  5 18:57 3
drwxr-xr-x  3 nobody nobody 4096 Apr  5 18:56 4rd

打开浏览器,运行rmdirstest.php文件。

显示目录情况:

 
[root@www mkdirs_test]# ll
total 56
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:56 1
drwxr-xr-x  2 nobody 4294967295 4096 Apr  5 18:56 1rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:56 2rd
drw-r--r--  2 nobody 4294967295 4096 Apr  5 18:56 6rd
-rwxrw-r--  1 www    www        2082 Apr  3 11:16 FileSystem.php
-rwxrw-r--  1 www    www         989 Apr  5 18:21 mkdirstest.php
-rwxrw-r--  1 www    www         102 Apr  5 18:55 rmdirstest.php

不见了3rd目录,说明已被rmdirs()函数整个删除掉,包括里面的文件及子目录。

Tags: fleaphp, php, mysql, 框架, ajax

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

发表评论

评论内容 (必填):