4

我有一个场景,我需要计算文件中的单词数。我有不同的文件格式,例如.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);
        }
    }
?>

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

4

3 回答 3

4

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

我为您的 PHP 问题提到了这个 Java 框架,因为它有一个名为PhpTikaWrapper的 PHP 包装器。我从未使用过包装器,但 Apache Tika 可以提取您所追求的元信息,因此调查包装器可能会证明是有益的。

于 2013-03-30T03:13:56.910 回答
1

你在那里有一项艰巨的任务。.doc .pdf并且.xls不仅仅是可读的。要对此进行测试,请尝试使用基本文本编辑器(如notepadgedit. 你会看到什么似乎是胡言乱语。这与 PHP 在读取文件内容时看到的相同。

.xls并且.doc可能可以使用 PHPOffice 中的 PHPWord 和 PHPExcel 进行解析。您将需要查看这些库。我对PDF一无所知,但可能有一些东西。

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

于 2013-03-30T02:50:48.413 回答
1

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

于 2016-10-13T23:31:17.820 回答