0

在此处输入图像描述

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

我刚在想:

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 循环吗?

4

2 回答 2

1

如果您的代码在 linux 服务器上并且您有程序“定位”,我会考虑改用它。它将为您节省大量服务器负载,并更快地返回结果。

于 2013-04-04T17:37:10.443 回答
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);
}
于 2013-04-04T17:33:13.573 回答