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關系