【发布时间】:2012-12-26 05:14:30
【问题描述】:
如果我需要递归搜索某些目录以找到 .something 文件怎么办?
到目前为止我有这个代码:
$dir_iterator = new RecursiveDirectoryIterator('path/');
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $filename) {
if(strpos($filename, ".apk")){
$page->addToBody(substr($filename, 2)."</br>");
$filename = substr($filename, 2);
}
}
这适用于返回目录中唯一的 .apk 文件,但是如果找到多个文件,我希望能够找到一个特定文件。
例如我想说找到所有包含“hello”并以.apk结尾的文件名。
使用 Glob() 我做到了,效果很好:
glob('./'path'/*{'Hello'}*.apk',GLOB_BRACE);
但是它不是递归的。并且取决于指定的正确目录。 任何帮助将不胜感激。
【问题讨论】:
-
Hmz... 1. 如果你在linux机器上,你可以利用os函数! 2. 如果有一个名为“hello”的目录,是否应该返回其中的所有文件? 3.你说的是正则表达式,但你的代码使用了strpos。你真正想要/需要哪个?
标签: php regex search recursion directory