PHP 可以在 Win32 平台中連接 COM 和 DCOM 對象。
如果這是個簡單的 DLL 那麼還沒有辦法在 PHP 中執行它。如果這個 DLL 中包含有一個 COM 伺服器並且它實現了 IDispatch 接口,那有可能連接它。
有幾十種 VARIANT 型別以及它們的組合。大多數已經被支援了但還有幾種尚未實現。陣列沒有完全被支援。只有一維的僅用作索引的陣列可以在 PHP 和 COM 之間傳遞。如果你發現其它未支援的型別,請當作一個 bug 報告(如果尚未被報告的話)並提供盡可能多的訊息。
一般來說是可以的,但是 PHP 大都用來作為 web 腳本語言並執行在 web 伺服器的上下文環境中,因此可視對象決不會在伺服器的桌面上顯示。如果你把 PHP 用作應用程序腳本例如結合 PHP-GTK 來使用,那麼連接和通過 COM 來操縱可視對象方面沒有限制。
此錯誤可以有多種原因:
錯誤的 CLSID
找不到所請求的 DLL
所請求的組件沒有實現 IDispatch 接口
完全和執行本地對象一樣。只須將遠端伺服器的 IP 作為第二個變數傳遞給 COM 的建構函式即可。
確認在 php.ini 中設定了 com.allow_dcom=true。
編輯 php.ini 並設定 com.allow_dcom=true。
這不關 PHP 的事。如果在 HTML 文檔中請求的話,ActiveX 對象被加載在客戶端。這和 PHP 腳本沒有關係,因此也不可能和伺服器端發生直接的交互作用。
在綽號的幫助下這有可能。如果你想得到同一個 word 實例的多個引用你可以這樣建立此實例:
$word = new COM("C:\docs\word.doc"); |
如果沒有執行中的實例這將建立一個新的實例,否則將會傳回正在執行中的實例的句柄,如果可用的話。
我也不知道怎麼辦,我想這沒辦法。如果什麼人有對此問題的明確訊息請告訴我。:)