|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1729063
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2010/10/18 13:04 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15771
|
- [轉貼]使用php提供Web service
- 上回提到了如何使用php去呼叫別人提供的web service
這回我們來看看如何提供一個web service給別人吧
server.php
<?php
class HelloServise
{
//$__dispatch_map 用來定義這個hello function輸出以及輸入的參數型態
var $__dispatch_map = array();
function HelloServise()
{
//我們在constructor這邊指定好Hello這個函數Input的參數只有一個
//名稱叫input型態是string
//傳回值是一個string型態的值
$this->__dispatch_map['Hello'] =
array('in' => array('input' => 'string'),
'out' => array('output' => 'string'),
);
}
function Hello($input)
{
return "Hello:[$input]";
}
}
require_once 'SOAP/Server.php';
require_once 'SOAP/Disco.php';
//產生一個SOAP Server物件
$server = new SOAP_Server;
//產生一個我們要提供的web service物件
$Hello = new HelloServise();
//向SOAP Server註冊我們提供的Web Service名稱叫HelloService
$server->addObjectMap($Hello,'urn:HelloService');
//因為我們取得Client送過來的xml是用POST方式
//所以我們檢查如果送過來的資料是用POST送過來的
//就直接交給SOAP Server去做處理
if ($_SERVER['REQUEST_METHOD']=='POST')
$server->service($HTTP_RAW_POST_DATA);
else
{
//產生一個discover物件
//用來產生wsdl
$disco = new SOAP_DISCO_Server($server,'HelloServise');
//設定輸出文件為xml格式
header("Content-type: text/xml");
//如果client呼叫的時候是xxx.php?wsdl
//就呼叫getWSDL()傳回wsdl格式的XML
//否則就送回正確取得wsdl方式的XML
if($_SERVER['QUERY_STRING']=='wsdl') echo $disco->getWSDL();
else echo $disco->getDISCO();
}
?>
我們來測試一下剛剛寫好的HelloService client.php
<?php
require_once("SOAP/Client.php");
$wsdl=new SOAP_WSDL('http://yourhost/server.php?wsdl');
$helloClient = $wsdl->getProxy();
echo $helloClient->Hello("This is a test!");
?>
輸出
是不是很簡單呢 此外這邊在補充一點 WSDL跟SOAP的關係 wsdl是用來描述你提供了哪些web service 用個簡單的說法就是 wsdl就是一個定義檔 定義你提供的物件 SOAP才是真正處理輸入以及輸出xml的主角
原文出處:酷!學園 - [心得]使用php提供Web service
|
|
討論串
-
[轉貼]PHP and Web Services 學習筆記 (冷日 (冷日), 2010/10/18 12:48)
-
[轉貼]實戰WebService I: XML-PRC篇(基於php) (冷日 (冷日), 2010/10/18 12:55)
-
[轉貼]實戰WebService II: SOAP篇(基於php) (冷日 (冷日), 2010/10/18 12:58)
-
[轉貼]實戰WebService III: REST篇(基於php) (冷日 (冷日), 2010/10/18 13:00)
- »
[轉貼]使用php提供Web service (冷日 (冷日), 2010/10/18 13:04)
-
[轉貼]soap 之 nusoap 的使用 (冷日 (冷日), 2010/10/28 9:16)
-
[轉貼]使用nusoap建立web service-範例 (冷日 (冷日), 2010/10/28 9:23)
-
[轉貼]php soap实例讲解 (冷日 (冷日), 2010/10/28 13:04)
-
[轉貼]NuSOAP的使用说明 (冷日 (冷日), 2010/10/28 13:08)
-
[轉貼]NuSOAP教程 - PHP教程 (冷日 (冷日), 2010/10/28 13:11)
|