如何计算doc,xls,pdf和txt文件中的单词

时间:2013-03-30 02:32:01

标签: php html

我有一个场景,我需要计算文件中的单词数。 我有不同的文件格式,例如.doc.xls.pdf.txt。我正在使用这种方法进行计数:

<form method="post" action="" enctype="multipart/form-data">
    <input type="file" name="docfile" />
    <input type="submit" name="submit" />
</form>

<?php
    if(isset($_POST['submit'])){
        $file = $_FILES['docfile']['name'];
        $file = str_replace(" ","_",$file);
        //$file = file_get_contents($file);

        $ext = pathinfo($file, PATHINFO_EXTENSION);
        move_uploaded_file($_FILES['docfile']['tmp_name'],"uploads/".$file);

        if($ext == "txt" || $ext == "pdf" || $ext == "doc" || $ext == "docx"){
            $file = file_get_contents("uploads/".$file);
            echo str_word_count($file);
        }
    }
?>

但它没有为文件返回正确的字数。

3 个答案:

答案 0 :(得分:3)

Apache Tika是一个Java框架,能够识别大量文档类型并从中提取元信息。它能够确定它识别的许多文档类型的字数。

我为你的PHP问题提到了这个Java框架,因为它有一个名为PhpTikaWrapper的PHP包装器。我从来没有使用过包装器,但Apache Tika可以提取你之后的元信息,调查包装器可能证明是有益的。

答案 1 :(得分:0)

你在那里遇到了一项艰巨的任务。 .doc .pdf.xls不仅仅是可读的。要对此进行测试,请尝试使用notepadgedit等基本文本编辑器打开pdf。你会看到似乎是胡言乱语的东西。这与PHP在您阅读文件内容时看到的内容相同。

可能使用PHPOffice中的PHPWord和PHPExcel解析

.xls.doc。您需要查看这些库。我对PDF没有任何了解,但可能有些东西。

我建议编写一系列类,这些类都实现类似的接口,以便根据扩展名将它们切换出来。

答案 2 :(得分:0)

我一直在研究一个通用类,它包含了Web和Stack Overflow上的各种方法,它们为doc,docx,pdf和txt文件提供了单词,行和页面计数。我希望它对人们有用。如果有人可以让RTF使用它,我会喜欢拉动请求! https://github.com/joeblurton/doccounter