像微软一样计算单词的数量



我需要使用 php 计算 ms Word 2007 格式的单词数,问题是计数需要与它在 Microsoft Word 中的工作方式相同,因为我尝试编写代码,但不是像 ms 字数这样的 100% 计数单词。 我的脚本: 图书馆来自: https://www.phpclasses.org/package/8908-PHP-Convert-DOCX-DOC-PDF-to-plain-text.html require_once("包括/library_count_words.php");

$fileDir = $_FILES["文档文件"]["名称"];

$docObj = 新的 Doc2Txt($fileDir);

$text = $docObj->convertToText();

$text = preg_replace('![^ pLpNs]+!u', '', strtolower($text));
$text = trim( preg_replace('![ s]+!u', ' ', $text) );
$count = count( explode(' ', $text) );
print "<div class='alert alert-success'>Number of words : ".$count."</div>";

}

任何建议伙计们。谢谢

也许是这个,但仍然不是 100% 相同。

function str_word_count_utf8($str) {
$str = preg_replace('/['&_,%`"@~#]/', "", $str);
//$str = preg_replace('/[&_,%`"@~#]/', "", $str);
//$a = preg_split('/W+/u', $str, -1, PREG_SPLIT_NO_EMPTY);
//$a = preg_split('/s+/', $str);
$a = preg_split('/S+/', $str, -1, PREG_SPLIT_NO_EMPTY);
return count($a);  
}

计数从从文件中提取文本开始。如果我们谈论仅使用 php,这意味着您没有任何其他选择 - 我的意思是,您无法在服务器上安装的 MS Office 等中打开它。

因此,首先也是最重要的事情是从文件中提取文本。根据您的文件扩展名,您可以使用各种库 - 例如PHPWord。使用DOCX文件更容易,因为这是可用于提取文本的结构化文件的压缩存档。DOC 文件不太容易,因为解析 DOC 文件意味着您从此类文件中获取文本和图片相关数据,从而导致一定数量的垃圾添加到您从 DOC 文件中获取的有意义的文本中。

因此,如果您仅使用PHP,则简短的答案是:您的结果永远不会与MS Word计数器相同。

但好消息是你不需要相同的结果,因为你把4个著名的计数器(FineCount,内置MS Word计数器,PractiCount,AnycCount等)拿出来,你会得到5个完全不同的数字。

最新更新