我只能找到每行的解决方案,但无法找到分页符;也很困惑。 对于docx也无法找到准确的字数。
function read_doc($filename) {
$fileHandle = fopen($filename, "r");
$line = @fread($fileHandle, filesize($filename));
$lines = explode(chr(0x0D), $line);
$outtext = "";
foreach ($lines as $key => $thisline) {
if( $key > 11 ){
var_dump($thisline);
$pos = strpos($thisline, chr(0x00));
if (($pos !== FALSE) || (strlen($thisline) == 0)) {
continue;
} else {
var_dump($thisline);
$text = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/", "", $thisline);
var_dump($text);
}
}
}
return $outtext;
}
答案 0 :(得分:2)
为此实现自己的代码听起来不是一个好主意。我建议使用外部库,例如PHPWord。它应该允许您将文件转换为纯文本。然后,您可以从中提取单词计数。
此外,诸如此类的外部库增加了对多种文件格式的支持,而不是限制您使用Word 97-2003。
答案 1 :(得分:1)
这是一个VB.NET代码的基本部分,它对每页的单词进行计数但要注意它取决于Word认为是单词的内容,它不一定是用户认为单词的内容。根据我的经验,您需要正确分析Word的行为方式,解释的内容,然后构建逻辑以确保获得所需的结果。它不是PHP,但它可以完成工作并且可以成为您的起点。
{{1}}
答案 2 :(得分:0)
解压缩.doc或.docx文件时,您将获得文件夹。在word子文件夹中查找document.xml文件。您将获得包含xml语法的完整文档。按页面xml语法分割字符串Strip xml syntax并使用str_word_count。
答案 3 :(得分:0)
什么是我需要一个Windows服务器: - 使用COM对象;; 请检查此链接 https://github.com/lettertoamit/MS-Word-PER-PAGE-WORDCOUNT/blob/master/index.php