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生成静态页面详解
Dec 05 PHP
php中随机显示图片的函数代码
Jun 23 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
10 个经典PHP函数
Oct 17 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
thinkphp缓存技术详解
Dec 09 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
php利用smtp类实现电子邮件发送
Oct 30 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
php实现的一段简单概率相关代码
May 30 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
linux php mysql数据库备份实现代码
2009/03/10 PHP
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
js日期联动示例
2014/05/02 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python实现八大排序算法
2016/08/13 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
selenium+python环境配置教程详解
2019/05/28 Python
Python字符串处理的8招秘籍(小结)
2019/08/13 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
解决python运行效率不高的问题
2020/07/20 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
车间班组长岗位职责
2013/11/13 职场文书
揠苗助长教学反思
2014/02/04 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
导游词格式
2015/02/13 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
Redis读写分离搭建的完整步骤
2021/09/14 Redis
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏
JAVA长虹键法之建造者Builder模式实现
2022/04/10 Java/Android
Python 绘制多因子柱状图
2022/05/11 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers