21,893
社区成员




$word = new COM("word.application") or die ("Could not initialise MS Word object.");
$word->Documents->Open(realpath($file));//realpath($file)文件路径
$content = (string) $word->ActiveDocument->Content;
//$num= (int) $word->ActiveDocument->BuiltinDocumentProperties(15);
//dump('1------:'.$num);
//exit;此处$num读取出来的结果 一直为1
$word->ActiveDocument->Close(false);
$word->Quit();
$word = null;
unset($word);
function StatisticWordsCount($text='',&$num,&$words)
{//$text为上面读出的$content内容
$word = new COM("word.application") or die ("Could not initialise MS Word object.");
$word->Documents->Add();
//4K读取
$len = strlen($text);
$my = 0;
while($my != $len)
{
if(($my + 4096) < $len)
{
$str2 = substr($text,$my,4096);
$word->Selection->TypeText($str2);
$word->Selection->TypeParagraph();
$my = $my+4096;
}
else
{
$str2 = substr($text,$my);
$word->Selection->TypeText($str2);
$word->Selection->TypeParagraph();
$my = $len;
}
}
$words = (int) $word->ActiveDocument->BuiltinDocumentProperties(15);
$word->ActiveDocument->Close(false);
$word->Quit();
$word = null;
unset($word);
$text = str_replace(str_split('|'),'',$text);//remove these chars
$text = str_replace(str_split('-'),'',$text);
$text = trim(preg_replace('/\s+/','',$text));
$text = preg_replace('/-{2,}/','',$text);
if($num=iconv_strlen($text, 'utf-8'))
{
return $num;
}
else
{
$num = iconv_strlen($text, 'gbk');
return iconv_strlen($text, 'gbk');
}
}