注:只在本地测试可行
1、开启COM组件
在php.ini里面开启(没有就添加)如图所示,直接在com里面找
extension=php_com_dotnet.dll
com.allow_dcom = true
2、电脑配置权限
win+r打开dcomcnfg,这是对应64位操作系统,32不同,用comexp.msc -32,界面类似
电脑有office的找到节点 Microsoft Word 97 - 200,安装WPS的找到WPS节点
右键属性
根据编号依次点击添加everyone权限,最后依次点击确定即可
3、代码
使用phpinfo()可以查看com是否安装成功
安装成功后会有图示内容,com_dotnet
代码如下
$srcfilename="http://....";
$word = new \COM("word.application") or die("Unable to instantiate Word");
//打开路径为URL的word,doc或docx都可以
$word->Documents->Open($srcfilename);
//读取内容
$test= $word->ActiveDocument->content->Text;
//统计字数
$num = strlen($test);
//查看版本
$word_wersion = $word->Version;
//是否要打开文件,0代表否,1代表是
$word->Visible = 0;
//解决读取过程中乱码问题--用于展示
$content= iconv('GB2312', 'UTF-8', $test);
//替换模板文字
$content=str_replace("原有文字","替换成文字",$content);
//打开空白文档
$word->Documents->Add();
//再次转码打印确认变量已被替换
$test1= iconv('UTF-8', 'GB2312', $content);
//在新文档中添加文字
$word->Selection->TypeText($test1);
//关闭word句柄
$word->Quit();
//释放对象
$word = null;
以上位主要代码,可以直接放入方法中使用,url不能为www下的文件地址会找不到文件。运行时会弹出保存提示,根据需求保存为doc/docx/pdf即可