2007-09-21

利用正确的PHP类搜索定位目录树

来源: 开发者在线 作者: 评论 0 条
 
[dummyC] => Array
(
[0] => parrot.gif
)

)

[dummyB] => Array
(
[0] => metoo.mp3
[1] => track.dat
)
)

提示:你可以给mapTreeMultiple()加上一个可选的参数,限定它在执行递归时向下查询的层数。

glob()方法,你可以在指定目录下搜索与特定Perl兼容型的规则表达式匹配的文件。请看一下列表E。

列表E

<?php
// include class
include("Find.php");

// initialize finder
$finder = new File_Find();

// search for matching files in named directory
$results = $finder->glob("/mp3/i", "/usr/local/stuff", "perl");
print_r($results);
?>

在这里,glob()方法访问指定目录下所有名称中带有字符串mp3的文件。注重我对修饰符i的使用,它使得搜索没有大小写之分,还有我使用了第三个自变量,告诉类要使用Perl regex函数,而不是默认的PHP函数。

File_Find类由于它的search()方法而真正发挥作用起来,这个方法结合了mapTreeMultiple()glob()方法的能力进行多层目录搜索。列表F中是一个例子。

列表F

<?php
// include class
include("Find.php");

// initialize finder
$finder = new File_Find();

// search for matching files
// in named directory and subdirectories
$results = $finder->search("/exe/i", "/usr/local/winstuff", "perl");
print_r($results);
?>

列表G显示了输出的一个样本:

列表G

Array
(
[0] => /usr/local/winstuff/4HELP.EXE
[1] => /usr/local/winstuff/ARJ.EXE
[2] => /usr/local/winstuff/bzip2.exe
[3] => /usr/local/winstuff/CRLF.EXE
[4] => /usr/local/winstuff/DECODE.EXE
[5] => /usr/local/winstuff/GREP.EXE
[6] => /usr/local/winstuff/GPG/gpg.exe
[7] => /usr/local/winstuff/GPG/uninst-gnupg.exe
[8] => /usr/local/winstuff/GPG/WinPT.exe
[9] => /usr/local/winstuff/Fprot/F-PROT.EXE
)

这就是你的递归目录查询,仅仅只有四行代码!

正如你所看到的那样,File_Find使得简单有效地完成一个相对复杂的任务成为可能,而且你会感到最小的压力,这也就是我为什么极力向你推荐它的原因。下次当你需要在目录树上执行一个文件查找操作时,不妨你自己尝试一下。祝你编程快乐!


共2页: 上一页 [1] 2 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:动态网页技术PHP程序中包含文件问题  
下一篇:PHP.INI配置文件漫游
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号