3

PHP を使用して PDF、doc、docs、txt などのファイル内のテキストを検索するにはどうすればよいですか? MySQL で全文検索と同様の機能を実行したいのですが、今回はデータベースではなくファイルを直接検索します。

検索は、フォルダーにある多くのファイルを検索します。この問題に対する提案、ヒント、または解決策はありますか?

また、Googleもファイルを検索していることに気付きました。

4

4 に答える 4

4

PDF を検索するには、コンテンツを PDF からテキストに変換する pdftotext のようなプログラムが必要です。Word ドキュメントの場合は、似たようなものを利用できる可能性があります (Word ファイルのすべてのスタイル設定と暗号化のため)。

PDF を検索する例 (私のスクリプトの 1 つからコピーされたもの (コード全体ではなくスニペットですが、ある程度理解できるはずです) で、キーワードを抽出し、一致を 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]));
        }
    }
}
于 2010-10-01T11:38:49.977 に答える
3

ファイルの種類によっては、ファイルをテキストに変換してから、iefile_get_contents()str_pos(). ファイルをテキストに変換するには、他のツールに加えて、次のツールを利用できます。

  • catdocワードファイル用
  • xlhtmlエクセルファイル用
  • ppthtmlパワーポイントファイル用
  • unrtfRTF ファイル用
  • pdftotextPDFファイルの場合
于 2010-10-01T11:45:03.137 に答える
1

Linuxサーバーを使用している場合は、使用できます

grep -R "text to be searched for" ./   // location is everything under the actual directory

execを使用して php から呼び出され、結果として

cmd = 'grep -R "text to be searched for" ./';
$result = exec(grep);
print_r(result);
于 2010-10-01T11:36:29.473 に答える