当前位置: 首页 > 面试题库 >

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

华阳秋
2023-03-14
问题内容

我正在寻找将某些字符串搜索到某些文件夹结构中的最快方法。我知道可以使用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
    }
}


 类似资料:
  • 本文向大家介绍如何在Linux上递归搜索所有文件中的字符串,包括了如何在Linux上递归搜索所有文件中的字符串的使用技巧和注意事项,需要的朋友参考一下 的grep命令用于搜索文本或扫描包含匹配到给定的字符串或单词行给定记录。使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。使用grep命令,我们可以在Linux上递归地在所有文件中搜索字符串。 的语法如下所示- 例如,在“下载”

  • 我试图得到我的罐子的父文件夹,并通过它一路搜索。原因是我正在修改构建路径中jar下面的所有. class文件(它下面有一堆jar)。 我目前在dir上获得NPE。searchForClasses方法中的listFiles(),原因是当我创建文件的新实例时,它不是正确的路径。(我相信) 我目前有: 这就是我用来尝试获取父文件的方法: 有人对我能换什么有什么想法吗?

  • 我试图创建一个java程序,它可以读取一个名为file1.txt的文件,存储它的字符串,并将这些字符串搜索到另一个名为file2.txt的文件,如果没有找到匹配,则从file1.txt打印特定的字符串。 现在我可以从file1.txt获得数据,但无法搜索file1的数据,例如在file2.txt中搜索单词“home” 请看这里的file1.txt包含Homee,而file2.txt有Home,所以

  • 问题内容: 我想检查字符串是否在文本文件中。如果是,请执行X。否则,请执行Y。但是,True由于某些原因,此代码始终返回。谁能看到错在哪里? 问题答案: 你一直得到的原因已经给出,因此我只提供另一个建议: 如果你的文件不是太大,则可以将其读取为字符串,然后使用它(比读取和检查每行更容易,并且通常更快): 另一个技巧:通过使用创建使用基础文件的“字符串状”对象(而不是读取内存中的整个文件),可以减轻

  • 本文向大家介绍C#搜索文字在文件及文件夹中出现位置的方法,包括了C#搜索文字在文件及文件夹中出现位置的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#搜索文字在文件及文件夹中出现位置的方法。分享给大家供大家参考。具体如下: 在linux中查询文字在文件中出现的位置,或者在一个文件夹中出现的位置,用命令: 就可以了。今天做了一个C#程序,专门用来找出一个指定字符串在文件中的位置,与一