php - 使用 PHP 在文件中搜索文本

标签 php full-text-search text-search

如何使用 PHP 在 PDF、doc、docs 或 txt 等文件中搜索文本? 我想做与 MySQL 中的全文搜索类似的功能, 但这一次,我是直接搜索文件,而不是数据库。

搜索将在位于文件夹中的许多文件中进行搜索。 对此问题有任何建议、提示或解决方案吗?

我也注意到,谷歌也会搜索文件。

最佳答案

要搜索 PDF,您需要一个像 pdftotext 这样的程序,它将内容从 pdf 转换为文本。对于 Word 文档,可以使用类似的东西(因为 Word 文件中的所有样式和加密)。

一个搜索 PDF 的示例(从我的一个脚本中复制(它是一个片段,不是整个代码,但它应该让您有所了解),我在其中提取关键字并将匹配项存储在 PDF-results-array 中。) :

foreach($keywords as $keyword)
{
    $keyword = strtolower($keyword);
    $file = ABSOLUTE_PATH_SITE."_uploaded/files/Transcripties/".$pdfFiles[$i];

    $content    = addslashes(shell_exec('/usr/bin/pdftotext \''.$file.'\' -'));
    $result     = substr_count(strtolower($content), $keyword);

    if($result > 0)
    {
        if(!in_array($pdfFiles[$i], $matchesOnPDF))
        {
            array_push($matchesOnPDF, array(                                                    
                    "matches"   => $result,
                    "type"      => "PDF",
                    "pdfFile"   => $pdfFiles[$i]));
        }
    }
}

关于php - 使用 PHP 在文件中搜索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838744/

相关文章:

javascript - jQuery 根据其中的点击元素获取 <li> 的 ID

mysql - Sunsopt Solr 不搜索以 0 开头的邮政编码

ruby-on-rails - PostgreSQL 触发器在 UPDATE 而不是 INSERT 时触发

git - 如何打印我在任何 git 提交期间添加或编辑的所有 TODO 注释

Javascript 在字符串中查找单词的索引(不是单词的一部分)

php - 查询不显示信息 : PDO, MYSQL, PHP

php - 我在数据表中添加分页,但表记录重复

php - 在谷歌日历中插入事件

mysql - 将全文功能添加到 MySql 中的现有表

node.js - MongoDB 全文搜索 : Overflow sort stage buffered data usage