我基本上想在我的电脑上搜索一个文件。我知道如何搜索,但是有一种快速搜索名称和扩展名的方法,而不会使我的脚本超过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循环?
答案 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);
}