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 相关文章推荐
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php文件缓存类汇总
Nov 21 PHP
php通过修改header强制图片下载的方法
Mar 24 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP封装的字符串加密解密函数
Dec 18 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP生成图片验证码功能示例
Jan 12 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
php随机输出名人名言的代码
2012/10/07 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
Python注释详解
2016/06/01 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
python3多线程知识点总结
2019/09/26 Python
python加载自定义词典实例
2019/12/06 Python
德国旅游网站:weg.de
2018/06/03 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
法学毕业生自荐信
2013/11/13 职场文书
暑期社会实践方案
2014/02/05 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
创业计划书之服装
2019/10/07 职场文书