在php中动态搜索文件

时间:2013-04-04 17:29:43

标签: php

enter image description here

我基本上想在我的电脑上搜索一个文件。我知道如何搜索,但是有一种快速搜索名称和扩展名的方法,而不会使我的脚本超过2个for循环吗?名称(例如..文件,病毒,节点,misc)和扩展名将动态添加,而不是通过源代码..名称将成千上万,所以我不想一个一个地添加它们,因此为什么我我正在动态地做这件事。

我在想:

foreach($names as $i){
  if (file_exists($i.".exe" | $i.".py" | $i.".js" | $i.".html" | )){
    //echo true or false}}
像我说的那样。我也会动态添加扩展名。使用file_exists(20 thousand extensions)代码长或仅使用表单添加代码是否值得?

它是否是另一个for循环中的for循环?

2 个答案:

答案 0 :(得分:1)

如果您的代码在Linux服务器上并且程序“locate”,我会考虑使用它。它将为您节省大量的服务器负担,并且可以更快地返回结果。

答案 1 :(得分:0)

使用Spl迭代器有一种方法。

以下示例摘自RecursiveDirectoryIterator的文档。它搜索名为“Yourfile.py”的文件:

$filename = 'Yourfile.py';

$directory = new RecursiveDirectoryIterator('path/to/search_root/');
$iterator = new RecursiveIteratorIterator($directory);
$regexiterator = new RegexIterator(
    $iterator,
    '/^' . preg_quote($filename) . '$/',
    RecursiveRegexIterator::GET_MATCH
);

foreach($regexiterator as $fileinfo) {
    var_dump($fileinfo);
}