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制作简单的内容采集器的原理分析
Oct 01 PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 PHP
国外十大最流行的PHP框架排名
Jul 04 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
PHP判断是否有Get参数的方法
May 05 PHP
php实现建立多层级目录的方法
Jul 19 PHP
golang 调用 php7详解及实例
Jan 04 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP chop()函数讲解
Feb 11 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
mysql 字段类型说明
2007/04/27 PHP
PHP新手入门学习方法
2011/05/08 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php提取微信账单的有效信息
2018/10/01 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python读取并写入mat文件的方法
2019/07/12 Python
django如何通过类视图使用装饰器
2019/07/24 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python爬虫如何解决图片验证码
2021/02/14 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
后勤自我鉴定
2013/10/13 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
优秀乡村医生事迹材料
2014/05/28 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
六年级作文之预言作文
2019/10/25 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL