萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

以 NuSOAP 打造 PHP 版 SOAP Web Service:伺服端與客戶端完整實作

許多機構採用 Apache + PHP 作為 Web 應用基礎架構。雖然 Web Services 常讓人聯想到 Java 或 .NET,但搭配 NuSOAP 函式庫,PHP 同樣能輕鬆構建符合標準的 SOAP 伺服端與客戶端。

範例應用情境

本文透過一個簡單應用示範:提供兩個 SOAP 方法——reverse() 反轉字串、add2numbers() 計算兩數之和。

SOAP 伺服端實作 (soapfunc.php)

<?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);
}
?>

核心步驟解析

  1. 引入 NuSOAP: require_once('nusoap.php')
  2. 定義業務邏輯函數: 撰寫欲公開的 PHP 函數,並妥善處理輸入驗證與錯誤回傳(使用 soap_fault)。
  3. 建立伺服端實例並註冊方法: 後續程式碼需實例化 soap_server,以 register() 註冊函數,最後以 service($HTTP_RAW_POST_DATA) 接收原始 POST 資料交由 NuSOAP 處理。

reverse() 接收單一字串參數,逐字反轉後回傳;add2numbers() 驗證兩參數皆為整數後回傳總和。錯誤時拋回 SOAP Fault,符合標準錯誤處理流程。

copyright © 萬盛學電腦網 all rights reserved