phpcom

更新时间:2023-03-02 05:04:50 阅读: 评论:0

php中有个com组件,它里面都有哪些属性和方法可以调用呢?

先到PHP.INI中打开COM选项,com.allow_dcom = true


PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll,如果PHP VERSION<5.4.5 则不需要。否则的话,可能就是报错 Fatal error: Class 'COM' not found 了


配置方法为:只需在扩展列表里添加extension=php_com_dotnet.dll即可

另外需要了解的是,COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在PHP.INI里加载是错误的,PHP也不认识它


配置完毕后可以测试下,语句为

$word=newCOM("word.application")ordie("UnabletoinstanciateWord");
print"LoadedWord,version{$word->Version} ";

上面语句本机必须安装了office才可以

openoffice的为:

$obj=newCOM("com.sun.star.ServiceManager")ordie("UnabletoinstanciateWord");

如何解决php com

先到PHP.INI中打开COM选项,com.allow_dcom = true 注意: PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll ,
如果PHP VERSION<5.4.5 低版本则不需要。

如何用PHP调用自己编写的COM组件

  首先写ActiveX Dll:

  新建一个VB6工程,ActiveX Dll将工程命名为P_test,类名为c_test ,类的文件内容如下:

  Option Explicit

  Private MyscriptingContext As scriptingContext

  Private MyApplication As Application

  Private MyRequest As Request Private MyRespon As Respon

  Private MyServer As Server

  Private MySession As Session Public

  Sub OnStartPage(PasdscriptingContext As scriptingContext)

  Set MyscriptingContext = PasdscriptingContext

  Set MyApplication = MyscriptingContext.Application

  Set MyRequest = MyscriptingContext.Request

  Set MyRespon = MyscriptingContext.Respon

  Set MyServer = MyscriptingContext.Server

  Set MySession = MyscriptingContext.Session

  End Sub

  Public Sub OnEndPage()

  Set MyscriptingContext = Nothing

  Set MyApplication = Nothing

  Set MyRequest = Nothing

  Set MyRespon = Nothing

  Set MyServer = Nothing

  Set MySession = Nothing

  End Sub

  Public Function Test_Number(num) As Variant

  If num 0 Then Get_Number_Attrib = 1

  If num = 0 Then Get_Number_Attrib = 0

  End Function

  编译生成p_test.dll文件

  注册

  提示符下运行:regsvr32 p_test.dll

  编写php文件,test.php4代码如下:

  <?php

  $b=new COM("p_test.c_test");

  $a=$b->Test_Number(-454);

  echo $a;

  ?>

  可能碰到的问题是,编译工程时通不过,要将Microsoft Active Server Pages Object Library引用进来,具体实现"Project->References"找到改库,并勾上 。

php 调用com组件只初始化一次,之后一直可以用

使用静态变量

//MyClient.class.php文件
classMyClient{
privatestatic$clientInstance=null;
privatestaticinitClient(){
lf::clientInstance=newCOM("test.AcClient");
lf::clientInstance->ConnectSvr('127.0.0.1','9000');
}

publicstaticgetClientInstance(){
if(lf::clientInstance==null){
lf::initClient();
}
returnlf::clientInstance;
}
}

//其他php文件
require_once('MyClient.class.php');
$ss=MyClient::getClientInstance();

本文发布于:2023-02-28 20:52:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167770469092816.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:phpcom.doc

本文 PDF 下载地址:phpcom.pdf

标签:phpcom
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|