java以空格为界限计算字数,如何在docx / odt(rtf)文件中用空格计算字符数?

是否有任何方式如何在线(意味着作为上传表格的一部分,所以在php / javasctipt)得到的文件空间保存在DOCX和ODT(如果可能的话RTF)?我的意思是,要获得单词统计中显示的相同字符数?

我知道,这个词在他的 app.xml 文件中存储了 ,但是知道得很清楚 .

我试图简单地做 - 打开xmls,计算字符并获得它的值,但问题是,这种方式既不准确,请参阅我的代码:

$document = 'cvicnytext2.docx';

function extracttext($filename) {

//Check for extension

$ext = explode(".", $filename);

$ext = end($ext);

//if its docx file

if($ext == 'docx')

$dataFile = "word/document.xml";

else

$dataFile = "content.xml";

$zip = new ZipArchive;

// Open the archive file

if (true === $zip->open($filename)) {

if (($index = $zip->locateName($dataFile)) !== false) {

$text = $zip->getFromIndex($index);

$xml = new DOMDocument();

$xml->loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);

return strip_tags($xml->saveXML());

}

$zip->close();

}

return "File not found";

}

$length = strlen( utf8_decode( extracttext($document) ) );

echo "Length: ". $length."(chars with spaces).";

如果我上传例如这个file我得到了我的代码 76015 字符,但Word显示 76113 所以一百个在某处丢失了 .

有人知道如何使它更精确吗?我们将不胜感激 .

Some more UPDATES

我发现内部没有太大区别:用于计算长度的函数 - mb_strlen( $text ) 和 strlen( utf8_decode( $text ))

但是可能导致问题的原因是读取zip文件会导致一些麻烦 - 在字符串之前和之后添加空格并添加一些未打印的字符,但它们会被计算在内 . 任何的想法?如果我将相同的文本直接复制/计算到计数功能,它可以毫无困难地工作......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值