一,首先要確認php版本,最好是高於5.6
二,將以下兩行代碼放入php.ini中並且重啓
//這個是開啓擴展
extension=php_com_dotnet.dll
//這個是COM擴展裏自帶的,只需將前面的;去掉就可以了
com.allow_dcom = true
三,自己編寫一個三方類庫文件,phpcom.php,如下:
<?php
class PHPcom {
/**
* 返回word內容,和字數(字符數),版本
* @param $url
* @return array
*/
public static function php_com($url)
{
$word = new COM("word.application") or die("Unable to instantiate Word");
//打開路徑爲URL的word,doc或docx都可以
$word->Documents->OPen($url);
//讀取內容
$test= $word->ActiveDocument->content->Text;
//統計字數
$num = strlen($test);
//解決讀取過程中亂碼問題
$content= iconv('GB2312', 'UTF-8', $test);
//查看版本
$word_wersion = $word->Version;
//是否要打開文件,0代表否,1代表是
$word->Visible = 0;
//關閉word句柄
$word->Quit();
//釋放對象
$word = null;
return [
'num'=>$num/2,
'word_wersion'=>$word_wersion,
'content'=>$content
];
}
}
?>
四,在thinkphp的根目錄下找到vendor文件夾,沒有就自己創建一個
五,在vendor文件夾下創建phpcom文件夾,然後把phpcom.php文件放進去
ps:至此,準備工作就做好了,接下來我們就可以在常用函數文件(common.php)裏寫一個自定義函數了
六,在公共函數類common.php中寫一個方便調用的方法
function read_com_word($url=''){
//加載類庫文件
vendor("phpcom.phpcom");
//剪切url目錄(這是我自己的目錄問題)
$url = strstr($url,"uploads");
$url = 'http://localhost/'.$url;
//然後靜態調用php_com方法就可以了
$result = PHPcom::php_com($url);
return $result;
}