作者:weiwei | 来源:互联网 | 2023-09-25 16:24
步骤一、php开启COM组件查看php.ini中是否已经开启了com.allow_dcomtrue从phpext里面查找一下有没有这个php_com_dotnet.dll这个文
步骤一、php开启COM组件
查看php.ini中是否已经开启了com.allow_dcom = true
从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件
如果没有网上下载个,一般都会有的吧应该大概可能。。
然后查找这个php.ini里面查找下#extension=php_com_dotnet.dll把前面的#号去掉
如果找不到就复制,手动添加一下
然后输出下phpinfo()
看看有没有com_dotnet
COM support enabled
DCOM support enabled
.Net support enabled
表示COM组件开启成功
然后新建一个php文件在里面写上:
$com = new COM('word.application'); (#注意word.application 是电脑中必须有word文档才可以的)
echo $com;
如果没错的话应该会显示 Microsoft Word
说明COM扩展已经安装完成了!
步骤二、开启PHP调用Word组件DCOM权限
未开启权限前,调用 $word->Documents[1]->SaveAs(‘test.doc’); 时报错:Call to undefined method variant::SaveAs()。原因是PHP没有调用Word组件DCOM权限。开启权限如下:
1. 首先必须要在电脑上安装 Office
2. windows+r : 输入 dcomcnfg.exe 打开组件服务,然后双击 组件服务 ==> 双击 计算机 ==> 双击 我的电脑 ==> 打开 DCOM配置
找到 Microsoft Word 97 - 2003 文档 然后右键点击属性。
出现如下页面:
将身份验证级别设为 无
3. 然后点击 安全 将所有下图中红圈出现的地方设置为自定义,然后每个添加 Everyone 用户组,并将权限设置为全部(全打上勾就OK)
然后点击 标识 那一部分,将其选为 下列用户 用户填的是管理员用户,密码就是本机密码。
4. 特殊的如果在第 2 步找不到 Microsoft Word 97 - 2003 文档 部分,那么在运行那儿输入 mmc -32 然后在工具栏中选择 文件 然后选择 添加删除管理单元 ,然后单机 组件服务 将其添加,点击确定。
然后点击 组件服务节点 剩下的就跟上面的流程一样了,重复 步骤二和步骤三。
5. 接下来我们将word所需要操作的文件夹的权限添加 Everyone 权限, 至此问题解决。
转载自:https://blog.csdn.net/qingshui23/article/details/78867532