1、首先在windows的“服务”里面检查COM+服务是否已经启动。如果未启动,请启动它。
大概是该服务:Windows Management Instrumentation
2、检查php目录ext文件夹下面php_com_dotnet.dll是否存在。(顺便说一下,ext通常作为php程序的扩展目录,在安装php的时候一般已经设置好。否则就应该不仅仅报主题所说的错咯。)
3、如果没问题,在php.ini里面加入以下语句:
[PHP_COM_DOTNET]
extension=php_com_dotnet.dll
4、php.ini中设置
com.allow_dcom = true
5.PHP版本
PHP 5.4.5以
原文地址:http://lylgxy0704wht.blog.163.com/blog/static/570480392014824104435552/
另文:http://haofish.cn/90.html
php用COM方式读取word文档错误jar 发布于 2015-06-03 20:46:55
要用php来读取word文档的时候,我们就想到了COM组件。具体安装测试如下:
PHP 开启COM组件
1)先在php.ini中打开COM选项
com.allow_dcom = true
2)我这里的环境是PHP5.4.7,PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置
extension=php_com_dotnet.dll
,如果PHP VERSION<5.4.5 则不需要。否则的话,可能就是报错 Fatal error: Class ‘COM’ not found 了。
配置方法为:只需在扩展列表里添加
extension=php_com_dotnet.dll
即可。
3)另外需要了解的是,COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在php.ini里加载是错误的,PHP也不认识它。
配置完毕后可以用下面代码测试下:
word = new COM(“word.application”) or die(“Unable to instanciate Word”);
print “Loaded Word, version {word->Version}\n”;
上面语句本机必须安装了office才可以。
openoffice的为:
$obj = new COM(“com.sun.star.ServiceManager”) or die(“Unable to instanciate Word”);
下面是一个小的示例:(注意打开的路径写法)
word=newCOM(“word.application”)ordie(“UnabletoinstanciateWord”);print“LoadedWord,version$word−>Version\n”;//将其置前
word->Visible = 0;
//打开一个文档
word−>Documents−>Open(“D:\wamp\www\test\1.doc”);//随便做些事情echo
word->ActiveDocument->content->Text;
//关闭 word
$word->Quit();