PHP 和 COM


Posted in PHP onOctober 09, 2006

PHP 可以操作 Win32 平台下的 COM 和 DCOM 对象 1. 我创建了一个DLL来计算一些东西. 有什么方法可以在 PHP 下运行这个DLL吗 ? 2. 'Unsupported variant type: xxxx (0xxxxx)' 是什么意思 ? 3. PHP 里操作可视化对象可能吗? 4. 我可以把COM 对象存诸到 session里吗 ? 5. 我怎样捕获 COM 错误 ? 6. 我怎样在 PHP 里生成DLL文件,就象我在 Perl 里做的一样? 7. 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' 是什么意思 ? 8. 我怎样从远程服务器运行 COM 对象? 9. 我得到消息: 'DCOM is disabled in C:\path...\scriptname.php on line 6', 我应该怎么办 ? 10. 在 PHP页面里可以加载 ActiveX 对象吗 ? 11. 可不可以得到一个COM运行时的实例 ? 12. 有没有办法可以处理从 COM 对象送出的事件 ? 13. 我在调用一个 COM 对象(有多个接口)的方法时出错, . 我应该怎么办? 14. PHP 可以 COM工作, 那么 COM+呢 ? 15. PHP 可以操作 COM 对象, 我们是否可以设想通过 MTS 管理组件资源, 从而管理 PHP ?
1. 我创建了一个DLL来计算一些东西. 有什么方法可以在 PHP 下运行这个DLL吗 ?
你不能在PHP里操作简单的DLL.如果这个DLL包含COM服务器并实现了 IDispatch 接口,你可以操作它.
2. 'Unsupported variant type: xxxx (0xxxxx)' 是什么意思 ?
有很多 VARIANT 类型和它们的集合. 绝大多数已经被支持,可是还有少数不支持.数组也不完全支持,只有一维数组才被支持. 如果你还发现不支持的数据类型:请送 bug 报告(如果还没有报告) 并且提供尽可能多的信息.
3. PHP 里操作可视化对象可能吗?
通常是可以的.但是 PHP 多是用来作为脚本运行在web 服务器设备下, 而可视化对象从来不会出现在服务器桌面. 如果你使用PHP 作为应用程序脚本如 PHP-GTK ,那么通过 COM操作可视化对象是没有限制的.
4. 我可以把COM 对象存诸到 session里吗 ?
不可以. COM 实例被认为是资源.因此它们只能在单一的脚本程序里起作用.
5. 我怎样捕获 COM 错误 ?
当前没有其它工具可以追踪 COM 错误,除了 PHP 自已 (@, track_errors, ..), 我们正在考虑实现它的一种方法.
6. 我可以在 PHP 里生成DLL文件,就象我在 Perl 里做的一样?
不可以.不幸的是没有任何这样的PHP工具.
7. 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' 是什么意思 ?
这个错误有多方面的原因:

CLSID号是错误的
找不到COM所在的DLL
组件没有实现 IDispatch 接口

8. 我怎样从远程服务器运行 COM 对象 ?
就象你运行本地对象一样. 你仅仅需要把远程的IP地址作为第二个参数传给 COM 构造器.
还要确认你的 php.ini文件里com.allow_dcom=true .
9. 我得到消息: 'DCOM is disabled in C:\path...\scriptname.php on line 6', 我应该怎么办 ?
编辑 php.ini文件,设置 com.allow_dcom=true.
10. 在 PHP页面里可以加载 ActiveX 对象吗 ?
这应该与PHP无关. ActiveX 是客户端对象 ,由HTML 页面调用. 和 PHP 脚本没有直接关系. 当然,也没有直接的服务端交互的可能.
11. 可不可以得到一个COM运行时的实例 ? ?
用monikers可以实现这个功能. 你想得到同一个Word实例的多个引用,可以用下面的代码: that instance like shown: $word = new COM("C:\docs\word.doc");
如果没有Word的实例在运行,它会创建新的实例.否则,它会返回它的句柄.
12. 有没有办法可以处理从 COM 对象送出的事件 ?
还不能.
13. 我在调用一个 COM 对象(有多个接口)的方法时出错, . 我应该怎么办?
答案简单得让人不满意. 我不是太清楚,但我想你不用做什么. 如果还有人关于这有一些情况和看法,请让 我(harald.radi@nme.at) 知道 :)
14. PHP 可以 COM工作, 那么 COM+呢 ?
COM+ 扩展了 COM 框架,用来通过MTS 和 MSMQ管理 组件.没有什么特殊的东西PHP不支持.
15. PHP 可以操作 COM 对象, 我们是否可以设想通过 MTS 管理组件资源, 从而管理 PHP ?
PHP 本身还不能处理交易. 也就是说如果有错误发生它还是不会主动滚回. 即使用支持交易的组件对象,你还是要 自己实现交易的管理. (交易 - transactions) 

PHP 相关文章推荐
PHP中ADODB类详解
Mar 25 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
php利用header函数实现文件下载时直接提示保存
Nov 12 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php链表用法实例分析
Jul 09 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
如何获得PHP相关资料
Oct 09 #PHP
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 #PHP
example1.php
Oct 09 #PHP
一个ftp类(ini.php)
Oct 09 #PHP
php中数据的批量导入(csv文件)
Oct 09 #PHP
第四节 构造函数和析构函数 [4]
Oct 09 #PHP
PHP5 安装方法
Oct 09 #PHP
You might like
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
详解Python3序列赋值、序列解包
2019/05/14 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
iPython pylab模式启动方式
2020/04/24 Python
某公司面试题
2012/03/05 面试题
质检员岗位职责
2013/12/17 职场文书
监理资料员岗位职责
2014/01/03 职场文书
继承公证书
2014/04/09 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Nebula Graph解决风控业务实践
2022/03/31 MySQL