許多機構採用 Apache + PHP 作為 Web 應用基礎架構。雖然 Web Services 常讓人聯想到 Java 或 .NET,但搭配 NuSOAP 函式庫,PHP 同樣能輕鬆構建符合標準的 SOAP 伺服端與客戶端。
本文透過一個簡單應用示範:提供兩個 SOAP 方法——reverse() 反轉字串、add2numbers() 計算兩數之和。
<?php
require_once('nusoap.php');
function reverse($str) {
$retval = '';
if (strlen($str) < 1) {
return new soap_fault('Client', '', 'Invalid string');
}
for ($i = 1; $i <= strlen($str); $i++) {
$retval .= $str[(strlen($str) - $i)];
}
return $retval;
}
function add2numbers($num1, $num2) {
if (trim($num1) != intval($num1)) {
return new soap_fault('Client', '', 'The first number is invalid');
}
if (trim($num2) != intval($num2)) {
return new soap_fault('Client', '', 'The second number is invalid');
}
return ($num1 + $num2);
}
?>
require_once('nusoap.php')soap_fault)。soap_server,以 register() 註冊函數,最後以 service($HTTP_RAW_POST_DATA) 接收原始 POST 資料交由 NuSOAP 處理。reverse() 接收單一字串參數,逐字反轉後回傳;add2numbers() 驗證兩參數皆為整數後回傳總和。錯誤時拋回 SOAP Fault,符合標準錯誤處理流程。