利用PHP SOAP實現WEB SERVICE

2021-09-06 13:19:49 字數 1742 閱讀 9689

php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下soap擴充套件有沒有開啟。

在soap編寫web service的過程中主要用到了soapclient,soapserver,soapfault三個類。

soapclient類

這個類用來使用web services。soapclient類可以作為給定web services的客戶端。

它有兩種操作形式:

* wsdl 模式

* non-wsdl 模式

在wsdl模式中,構造器可以使用wsdl檔名作為引數,並從wsdl中提取服務所使用的資訊。

non-wsdl模式中使用引數來傳遞要使用的資訊。

soapserver類

這個類可以用來提供web services。與soapclient類似,soapserver也有兩種操作模式:wsdl模式和non-wsdl模式。這兩種模式的意義跟 soapclient的兩種模式一樣。在wsdl模式中,服務實現了wsdl提供的介面;在non-wsdl模式中,引數被用來管理服務的行為。

在soapserver類的眾多方法中,有三個方法比較重要。它們是soapserver::setclass(),soapserver::addfunction()和soapserver::handle()。 

下面給出例項:

定義乙個提供服務的php類,這個類所提供的函式就是web service對外提供的服務

1 php

2  class

personinfo

12  }

13 ?> 

下面給出伺服器端的**:

1 <?php

2 //包含提供服務的類進來

3 require_once('personinfo.php');

4 5 //wsdl方式提供web service,如果生成了wsdl檔案則可直接傳遞到//soapserver的建構函式中

6 //$s = new soapserver('personinfo.wsdl');

7 8 //doesn't work 只有location不能提供web service

11 12 //下面兩種方式均可以工作,只要指定了相應的uri

下面是客戶端**:

1 <?php

2 trycatch(soapfault $e)catch(exception $e)

23 24 ?>

利用PHP SOAP實現WEB SERVICE

php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下soap擴充套件有沒有開啟。在soap編寫web servic...

利用php soap實現web service

今天學習到soap,偶遇到一介紹soap的博文,mark下。php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下s...

利用PHP SOAP實現web service

一 什麼是soap?可以做什麼?二 什麼是wsdl?可以做什麼?wsdl 指網路服務描述語言。是一種基於xml編寫的文件。為使用者提供詳細的介面說明書。怎樣向別人介紹你的web服務 web service 有哪些功能,以及每個函式呼叫時的引數呢?你可能會自己寫一套文件,甚至可能會口頭告訴使用你web...