子目录寻找文件的简单方法 - DirectoryRecursiveIterator(目录递归迭代)

原文地址: [url]http://blog.makemepulse.com/2008/02/18/tips-easy-way-to-find-a-file-in-subdirectory-with-php/[/url]

轉載於 : [url]http://blog.csdn.net/mayongzhan/archive/2008/02/19/2105895.aspx[/url]


在一个非常多目录结构的情况下寻找一个文件,如下 :
[img]http://blog.makemepulse.com/wp-content/uploads/2008/02/directories.gif[/img]


我们要include进来file_to_find.php,这个文件需要递归的来寻找 :
include(dirname(__FILE__)."/class.directorysearch.php");

directory = dirname(__FILE__)."/directory";

$search_directory = new DirectorySearch($directory);
path_file = $search_directory->find("file_to_find.php");

if($path_file !== false){
include_once($path_file);
}
看一下class.directorysearch.php :
class DirectorySearch {

private
$iterator,
$directoryname;
public function __construct($directoryname){
$this->iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directoryname,RecursiveDirectoryIterator::KEY_AS_FILENAME));
}

public function find($filename){
foreach($this->iterator as $entry){
if($filename == $this->iterator->current()){
return $this->iterator->getPathName();
}
}
return false;
}
如果我们不在recursiveDirectoryIterator 中使用KEY_AS_FILENAME,我们将在$this->iterator->current()搜索整个目录;
这是一个关于RecursiveIteratorIterator使用RecursiveDirectoryIterator简单的例子
SPL 是非常强大的工具.!!!





Tips : Easy way to find a file in subdirectory with php - Antoine Ughetto
原文地址:http://blog.makemepulse.com/2008/02/18/tips-easy-way-to-find-a-file-in-subdirectory-with-php/
mayongzhan 译
2008-02-18 23:40:14
[查看中文翻译]
I’ve made a previus post on SPL using RecursiveIterator to parse Array. Today we will use this same RecursiveIterator with a DirectoryRecursiveIterator.
We have a directory with a lot of subdirectory like this and we want to find this file :
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值