简介
PHP4内置的COM函数对于在win32环境下编程的人们确实有吸引力。目前关于这方面的文档并不多。这篇文章将用3个例子(MS office 2000, Excel, Adobe Distiller)来解释怎样在PHP4里用COM编程。微软用不同的名称开发COM技术已经有多年了。在这篇文章里OLE, OLE自动化, ActiveX和COM都是一回事:用一段封装的代码来为一个windows应用实现一些函数。PHP4的COM建立与对象的连接(实例化对象)然后用其中的方法和属性。
如果你想重新开发这些例子,以下是我的配置:
Windows 98 - MS Office 2000
Apache 1.3.9 Windows
PHP4.02 Dev (08-20-00) Running as CGI
PHP4里的COM标记
让我们从PHP4里的COM函数开始。要实例化一个控件,需要一个“new”操作符和对象的“OLE标识符”:
COM是PHP4保留的一个类名称,它把$identifier传给构造函数。 我们现在有了一个实例化的控件,可以用OOP技术很方便的引用它的方法和属性。例如:
[Object]->[method1]->[method2]->..->[property]; ?>
就是这么简单!
如果不能这样引用的话(有时当属性的名称或值中含有点或括号等特殊字符时会引起PHP语法错误),PHP4 COM还提供了两个函数:
bool com_set(class com_object, string property name, string property_value);
mixed com_get(class com_object, string property_name);
?>
最后,PHP4也支持DCOM,可以建立一个远程计算机上对象的实例。
$Instance = new COM(string "Component name", string "remote_server_address");
?>
以上就是所有的函数,没有其它函数需要记住了!
注意:PHP可能将来支持在Unix上使用DCOM。
标识符,方法和属性
标识符是类似下面的字符串:
MS Word: "Word.Application" 或 "Word.Application.9"
MS Excel: "Excel.Application" 或 "Excel.Sheet"
ADOBE Acrobat: "Exch.application" 或 "PdfDistiller.PdfDistiller"
就象最后一个标识符表明的,并不是所有的对象的名称都是显而易见的。如果你没有VBA的文档,你可以查看注册表的HKEY_CLASSES_ROOT文件夹:在扩展名列表的下面你可以看到应用程序的名称,有CLSID子文件夹的就是可用的COM标识符。
应用程序应该提供有关COM的方法和属性的文档。例如在Office 2000中,打开程序,用快捷键打开VB编辑器然后用
打开对象编辑器。输入一个方法或属性的名称,选择一个成员后选择帮助即可得到该成员的描述。你也可以访问MSDN。一个Excel的例子是:http://msdn.microsoft.com/library/officedev/off2000/xltocobjectmodelapplication.htm
译自:http://www.phpbuilder.com/columns/alain20001003.php3
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn