剛剛做完底層的程序架構,基本完成了我的 Track 流量統計工具,該系統基於自定義的文件分析,還可以和 Apache 日誌文件結合使用,應對目前的百萬流量很輕鬆,有空給大家介紹一下這個基於 ZF 的 C/S 結構的系統,成就感還是有點的,呵呵~
下一步的重點,需要完成一個和電信 Empp 互通的短信接口程序,目前已經實現 PHP 調用 COM 接口的方式,但是這個接口功能不夠強大,於是準備用 Java 做一個 Service 來實現,以下先記錄一下使用 PHP 調用 COM 接口時出現的一些問題。
調用方式很簡單,首先註冊 dll 文件:
regsvr32 empp.dll (解除註冊用 regsvr32 /u empp.dll)
PHP 程序如下:
$empp = new COM("Empp.emptcl") or die("Unable to instanciate Empp");
$conn = $empp->connect($host, $port, $user, $pass);
if ($conn !== 0) {
trigger_error("Cannot connect to Empp Server", E_USER_ERROR);
exit;
}
以上就是一個測試 Empp 連接的程序,但是如何獲取 COM 接口名是一個問題,目前已知比較好的辦法:一是通過 dumpbin 打印 dll 文件包的符號清單,這樣就可以看出來你可以看到 COM 組件可調用的服務名列表;另外,還有一種辦法比較有意思,你可以 regedit 打開註冊表搜索所有和 dll 文件名相關的鍵值,結合實際情況也可以搞定可查出的服務名,有興趣的同學可以嘗試一下:)
後面會找時間給大家介紹一下使用 Java 實現 Empp 接口的程序,待續...