phpcom调用
⑴ php调用COM组件操作EXCEL文档的问题
COM组件是通用的,如果你想用调用COM组件来操作EXCEL文档,建议可以参考的工具和资料如下:
1. office (excel)VBA帮助文档,VBA中包含对象、属性、方法的说明。
2. 使用OCX、DLL等查看工具,比如:
oleview软件
比较简便的办法,你可以下载 vbsEdit 软件,其中带有 oleview 查看工具,当你引入某个 com 组件时,会自动显示该组件对象的方法、属性等。
⑵ php调用com组件exception 'com_exception' with message 'Failed to create COM object 'WPS.Application
COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在PHP.INI里加载是错误的,PHP也不认识它。
你这个是表示com组建不能使用,com组建在windows下需要注册的额。
⑶ php调用com组件,通过WMI能得到操作系统的日志吗
理论上讲是可以,日志一般也是文件存储形式,比如win的日志在C:\Windows\System32\config
一般来说获取日志文件内容即可,需要解决的问题:
1.日志文件是否有系统独占因素;
2.日志文件目录的权限;
3.读取到日志文件后,是否需要对应的解码或者转码问题。
⑷ 如何用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 MyResponse As Response
Private MyServer As Server
Private MySession As Session Public
Sub OnStartPage(PassedscriptingContext As scriptingContext)
Set MyscriptingContext = PassedscriptingContext
Set MyApplication = MyscriptingContext.Application
Set MyRequest = MyscriptingContext.Request
Set MyResponse = MyscriptingContext.Response
Set MyServer = MyscriptingContext.Server
Set MySession = MyscriptingContext.Session
End Sub
Public Sub OnEndPage()
Set MyscriptingContext = Nothing
Set MyApplication = Nothing
Set MyRequest = Nothing
Set MyResponse = 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 5.2.0 是不是没有php_com_dotnet.dll啊我要调用COM组件怎么弄现在显示DCOM support这个是disable
1)确实没有,PHP版本低于5.4.5之前是集成在内部的,在这个版本之后才独立了出来
2)php.ini搜索dcom,这这一段的注释去掉即可
⑹ 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 组件调用excel 失败
以下一个php调用COM访问excel的示例:
<?php
//指定页面编码,防止出现中文乱码的情形
header('Content-type: text/html; charset=gb2312');
//启动Excel
$ms_excel = new COM("excel.application") or die("不能打开Excel应用程序");
//打开excel文件
$ms_excel->Application->WorkBooks->Open( 'e:\test\test.xls') or die("不能打开工作簿");
//在工作簿的第2个工作表的单元格B1中输入文本
$ms_excel->Worksheets(2)->Range("B1")->Value = "测试";
//保存工作簿
if(!$ms_excel->ActiveWorkBook->Saved)
{
$ms_excel->ActiveWorkBook->save();
}
//关闭工作簿
$ms_excel->Quit();
//清空对象
$ms_excel = null;
?>
⑻ PHP调用COM组件操作WORD问题
hp // 建立一个指向新COM组件的索引 $word = new COM("word.application")
⑼ linux系统的php调用com或者dll
哈?????
头一次听说 windows编译的dll能在linux下载入
也没准 据说新版C#可以跨平台 在 乌班图的图形界面编译程序
如果你是想自定义扩展库的话 需要在编译时候 加入编译参数
比如加入 curl扩展(这个最常用吧)
--with-curl[=DIR]
[]是你的扩展库的路径
⑽ 急! PHP无法调用COM. ASP是常的.求助!
你的h.dll注册了?
regsvr32
c:\yourpath\h.dll
需要注意的问题一定要把你用到的所有DLL文件都放在一个目录下。然后进行注册。注册成功后,你就可以调用了
你可以下载DEPENDS.EXE,来确定你的dll所调用的其他dll关系