优化PHP功能

RSi*_*lva 0 php optimization

我有一个函数,它检测由字符串启动的所有文件,并返回一个填充了相应文件的数组,但它开始变慢,因为我在特定目录中有20000个文件.我需要优化这个功能,但我只是看不出来.这是功能:

function DetectPrefix ($filePath, $prefix)
{

    $dh  = opendir($filePath);
    while (false !== ($filename = readdir($dh)))        
    {   
        $posIni = strpos( $filename, $prefix);
        if ($posIni===0):                           
            $files[] = $filename;                       
        endif;
    }

    if (count($files)>0){                               
        return $files;
    } else {
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

我还能做什么?

谢谢

cee*_*yoz 11

http://php.net/glob

$files = glob('/file/path/prefix*');
Run Code Online (Sandbox Code Playgroud)

维基百科打破上传了由它们的文件名的第一个几个字母,所以excelfile.xls会去像一个目录/uploads/e/x,而textfile.txt会去/uploads/t/e.

这不仅减少了文件glob(或任何其他方法)必须排序的数量,而且还避免了其他人提到的目录问题中的最大文件.