在文件夹中的所有文件中搜索字符串

我正在寻找将某些字符串搜索到某些文件夹结构中的最快方法。我知道可以使用file_get_contents从文件中获取所有内容,但是我不确定是否很快。也许已经有一些可以快速运行的解决方案。我正在考虑使用scandir获取所有文件,并使用file_get_contents读取其内容,并使用strpos来检查字符串是否存在。

您认为这样做有更好的方法吗?

或者也许试图与grep一起使用php exec?

提前致谢!

回答:

您的两个选项是DirectoryIterator或glob:

$string = 'something';

$dir = new DirectoryIterator('some_dir');

foreach ($dir as $file) {

$content = file_get_contents($file->getPathname());

if (strpos($content, $string) !== false) {

// Bingo

}

}

$dir = 'some_dir';

foreach (glob("$dir/*") as $file) {

$content = file_get_contents("$dir/$file");

if (strpos($content, $string) !== false) {

// Bingo

}

}

以上是 在文件夹中的所有文件中搜索字符串 的全部内容, 来源链接: utcz.com/qa/403623.html

回到顶部