如何计数单词在doc,xls,pdf和txt文件



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

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

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

我提到这个Java框架的PHP问题,因为有一个PHP包装器称为PhpTikaWrapper。我从未使用过包装器,但是Apache Tika可以提取您需要的元信息,因此,研究包装器可能是有益的。

你的任务很艰巨。.doc .pdf.xls不是简单可读的。为了测试这一点,尝试使用notepadgedit等基本文本编辑器打开pdf。你会看到一些似乎是胡言乱语的东西。这与PHP读取文件内容时看到的内容是一样的。

.xls.doc可能可以用PHPWord和PHPExcel从phoffice中解析。您需要查阅这些库。我不知道什么pdf文件,但可能有什么。

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

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

最新更新