NuSOAP構建基於PHP的SOAP服務

2021-04-20 07:44:31 字數 2647 閱讀 8534

為了說明如何應用nusoap和php來構建web services,我們將舉乙個簡單的例子。這個例子應用程式由乙個php web services的伺服器端和客戶端組成。他將實現兩個功能:顛倒乙個字串字元的順序,求兩個數的和。

php soap伺服器

用php和nusoap來建立soap伺服器非常容易。基本上,你只要寫出你想要暴露給你的web services的函式,然後用nusoap去註冊它們就可以了。

ok,另外還需要兩步才能完成php soap伺服器的建立。首先你還要在你的php**中建立nusoap物件的乙個例項,然後用http post方法將原始資料傳給nusoap進行處理。聽起來簡單吧。先看看清單1。

清單1:soapfunc.php

<?

require_once('nusoap.php');

function reverse($str)

for ($i = 1; $i <= strlen($str); $i++)

return $retval;

}function add2numbers($num1, $num2)

if (trim($num2) != intval($num2))

return ($num1 + $num2);

}?>

清單1給出了soapfunc.php的原始檔。這個檔案包含了我們想通過soap協議暴露給web services的兩個函式:reverse和add2numbers,它們是我們這個web services 應用的核心。函式reverse帶乙個引數,顛倒字串中的字元的順序,然後返回。

清單2:soapserver.php

清單2舉例說明了nusoap註冊函式和呼叫soap處理程式的用法。你看到了,註冊你的兩個函式(在soapfunc.php中)、傳遞post資料給soap_server物件,就跟建立乙個新的soap_server物件例項一樣的簡單。soap_server物件將要檢查post資料並確定將呼叫哪個函式,然後向這個php函式傳遞引數。從php函式返回的資料被重新包裝為soap響應並傳送給請求服務的soap客戶端。

php soap客戶端

現在我們已經利用nusoap和php建立了乙個soap伺服器,我們需要對它進行測試。像我們建立soap伺服器程式一樣,我們可以在php中利用nusoap再建立乙個soap的客戶端程式。清單3給出了php soap客戶端程式的源程式。

現在我們已經利用nusoap和php建立了乙個soap伺服器,我們需要對它進行測試。像我們建立soap伺服器程式一樣,我們可以在php中利用nusoap再建立乙個soap的客戶端程式。清單3給出了php soap客戶端程式的源程式。

清單3:soapclient.php

為了在乙個soap伺服器上能使用php客戶端程式,你還得做三件事情。第一,你要建立乙個soapclient物件。soapclient物件負責處理引數的編組和soap協議。soapclient需要乙個必須是url的引數。這個url可以指向乙個實際soap伺服器的http終端或者乙個wsdl描述。在我們這個例子裡,它是指向我們的php soap伺服器的乙個url。

當呼叫需要引數的函式時,你需要先建立乙個引數陣列,陣列包括一組鍵-值(key-value)對。鍵(key)是引數的名字,值(value)是引數的值。

當需要呼叫函式時,你就用soapclient物件去呼叫,並且傳入兩個引數。第乙個引數是你要呼叫的函式的名字,第二個引數是包含soap函式所帶引數的乙個陣列,主調函式將會返回你呼叫的soap函式的值。

要執行這個例子,只要簡單的在web瀏覽器中輸入soapclient.php的url。你將類似以下的輸出:

if you reverse 'this string will be reversed', you get 'desrever eb lliw gnirts siht' if you add 5 and 14 you get 19

NuSOAP構建基於PHP的SOAP服務

為了說明如何應用nusoap和php來構建web services,我們將舉乙個簡單的例子。這個例子應用程式由乙個php web services的伺服器端和客戶端組成。他將實現兩個功能 顛倒乙個字串字元的順序,求兩個數的和。php soap伺服器 用php和nusoap來建立soap伺服器非常容易...

基於Drupal的CMS構建

1.在 var www 下建立資料夾 sync a html html zhxue 2.修改配置檔案,新增 的資料庫資訊 vi sites default settings.php databases array default array default array database openci...

構建基於ipchains的Linux防火牆

眾所周知,linux可以作為乙個優秀的防火牆軟體使用。無論是結合web或ftp 使用,還是作為內部lan的前端伺服器,linux都能夠為構造滿足使用者特殊需求的防火牆提供必需的工具。ipchains內置於linux核心,它是乙個在系統之間拒絕 接受 路由資料報的基本防火牆工具。由於有了ipchain...