PHP Web Service實例

在這篇文章中將演示如何使用PHP代碼來編寫Web Service功能。 這是一個非常初級的Web服務示例,但可將它擴展並在伺服器上運行它。需要以下幾個步驟 -

  • 什麼是SOAP?
  • 為何選擇SOAP?
  • 創建Web 方法
  • 使用Web Service

1. 什麼是SOAP?

SOAP基於XML,因此被認為是人類可讀性較好的檔(代碼)。SOAP是用於訪問Web服務的協議。 它是一種簡單的基於XML的協議,允許應用程式通過HTTP交換資訊。

2. 為何選擇SOAP?

在實際應用中,通過遠程過程調用(RPC)在DCOM和CORBA之類的對象之間進行數據通信需要很多應用程式,但HTTP不是為此而設計的。

  • RPC需要相容性
  • 安全問題
  • 防火牆和代理伺服器通常會阻止此類流量。

在應用程式之間進行通信的更好方法是通過HTTP,因為所有Internet流覽器和服務器都支持HTTP。 這就是為什麼它比SOAP服務更可取。

我們可以與其他程式員在多個平臺上構建大型和複雜的應用程式進行協作。

3. 編寫代碼

在這裏,將使用PHP代碼創建一個Web服務。 所以按照下麵給出的步驟:

第1步:首先從 http://sourceforge.net/projects/nusoap/ 下載nusoap庫。
第2步:運行WAMP伺服器,進入到D:/wamp/www根檔夾位置。
第3步:在D:/wamp/www根檔夾中創建一個檔夾:websoap
第4步:將第1步下載檔中的lib檔夾複製到D:/wamp/www 目錄中。
第5步:在websoap 檔夾中創建兩個PHP檔 - server.phpclient.php
第6步:在server.php檔裏面,編寫下麵代碼內容:

<?php
ini_set('display_errors', 'Off');

//call library
require_once ('lib/nusoap.php');
//using soap_server to create server object

$server = new soap_server;
$server->soap_defencoding = 'UTF-8';
$server->decode_utf8 = false;
$server->xml_encoding = 'UTF-8';

//$server->register('sayHello', array("name"=>"xsd:string"), array("return"=>"xsd:string"));
//register a function that works on server
$server->register('sayHello');

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
// create HTTP listener
$server->service($HTTP_RAW_POST_DATA);


function sayHello($name='Maxsu') {
       return "Hello, {$name}!";
}

第7步:創建server.php檔後,現在測試此伺服器功能。 打開流覽器並輸入URL => http://localhost/wsoap/server.php?wsdl

第8步:在wsoap檔夾創建一個client.php檔,編寫下麵代碼內容:

<?php
ini_set('display_errors', 'On');
require_once ('lib/nusoap.php');

//Give it value at parameter
//Create object that referer a web services
$client = new soapclient('http://localhost/wsoap/server.php');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'UTF-8';

//Call a function at server and send parameters too
$params=array('name'=>'Maxsu');
$result = $client->call('sayHello', $params);

if (!$err=$client->getError()) {
    echo "return: ",htmlentities($result,ENT_QUOTES);
} else {
    echo "Error: ",htmlentities($err,ENT_QUOTES);
}

打開流覽器,打開流覽器訪問:http://localhost/wsoap/client.php,得到以下結果 -

這個示例演示了如何使用簡單的SOAP Web服務並從客戶端的服務獲取消息。希望這篇文章能幫助您使用SOAP創建一個簡單的Web服務。


上一篇: WSDL操作安全 下一篇:無