亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP中soap用法示例【SoapServer服務端與SoapClient客戶端編寫】

2024-05-05 00:06:01
字體:
來源:轉載
供稿:網友

本文實例講述了PHP中soap用法。分享給大家供大家參考,具體如下:

一、首先要設置服務器環境

修改php.ini

得添加extension=php_soap.dll (加載soap 內置包)

修改soap.wsdl_cache_enabled=1 改為soap.wsdl_cache_enabled=0 這個是soap的緩存,測試的時候最好改為0,上線穩定了改為1

soap有兩種模式一種是wsdl,一種是no-wsdl

二、熟悉幾個函數

1. SoapServer

SoapServer用于創建php服務器端頁面時定義可被調用的函數及返回 響應數據

格式:

$soap = new SoapServer($wsdl,$array); 

其中,$wsdl為soap使用得wsdl文件,wsdl是描述Web Service的一種 標準格式,若將$wsdl設置為null,則表示不使用wsdl模式。
$array是 SoapServer的屬性信息,是一個數組。
SoapServer對象的addFunction方法是用來聲明哪個函數可以被客戶端調用, 語法格式如下:

$soap->addFunction($function_name);

其中,$soap是一個SoapServer對象,$function_name是需要被調用的函數名。

SoapServer對象的handle方法用來處理用戶輸入并調用相應的函數,最后返回 給客戶端處理的結果。語法格式如下: 

$soap->handle([$soap_request]); 

其中,$soap是一個SoapServer對象,$soap_request是一個可選參數,用來表示 用戶的請求信息。如果不指定$soap_request,則表示服務器將接收用戶的全部 請求。

2. SoapClient

SoapClient用于調用遠程服務器上的SoapServer頁面,并實現了對相應函數的調用

格式:

$soap = new SoapClient($wsdl,$array); 

參數$wsdl和$array與SoapServer相同

SoapClient的方法, 創建語法如下:

$soap->user_function($params); 

其中,$soap是一個SoapClient對象,user_function是服務器端要調用的函數,$params 是要傳入函數的參數。

3. SoapFault

SoapFault用于生成soap訪問過程中可能出現的錯誤。創建一個soapFault對象的語法格式

格式:

$fault = new SoapFault($faultcode,$faultstring); 

其中,$faultcode是用戶定義的錯誤代碼,$faultstring是用戶自定義的錯誤信息。soapFault 對象會在服務器端頁面出現錯誤時自動生成,或者通過用戶自行創建SoapFault對象時生成。對于 Soap訪問時出現的錯誤,客戶端可通過捕捉SoapFalut對象來獲得相應的錯誤信息。 在客戶端捕獲SoapFault對象后,可以通過下面的代碼獲得錯誤代碼和錯誤信息。

$fault->faultcode;//錯誤代碼 $fault->faultstring;//錯誤信息 

其中,$fault是在前面創建的SoapFault對象。

4. SoapHeader

soapheader用于描述soap的header信息,一般用于認證

/* *SoapHeader參數說明如下所示: *'http://tempuri.org/'  namespace(命名空間可省略) *'MySoapHeader'     SoapHeader頭的類名 *'array(...)'      存放標識身份的字符串參數 *'true'         是否必須處理該header*/

格式:

$h = new SoapHeader('http://192.168.0.153/hao/', 'auth', '123456789', false, SOAP_ACTOR_NEXT);

三、實例

不用wsdl模式的代碼

服務端:

//認證服務端class Test{  public function auth($a)  {    if($a != '123456789'){      throw new SoapFault('Server', '您無權訪問');    }  }  function say()  {    return 'Hi11111';  }}$srv = new SoapServer(null, array('uri' => 'http://192.168.0.153/hao'));$srv->setClass('Test');$srv->handle();

Test類中auth是認證判斷的,這個方法對應客戶端soapheader中的方法

客戶端:

//加密的客戶端$cli = new SoapClient(null, array('uri' => 'http://192.168.0.153/hao/', 'location' => 'http://192.168.0.153/hao/test.php', 'trace' => true,'encoding'=>'utf-8'));$h = new SoapHeader('http://192.168.0.153/hao/', 'auth', '123456789', false, SOAP_ACTOR_NEXT);$cli->__setSoapHeaders(array($h));try {echo $cli->say();} catch (Exception $e) {echo $e->getMessage();}

soapheader中auth對應服務端auth方法

如果不 認證,可以去掉下面這兩行:

$h = new SoapHeader('http://192.168.0.153/hao/', 'auth', '123456789', false, SOAP_ACTOR_NEXT);$cli->__setSoapHeaders(array($h));

wsdl模式

首先先生成wsdl文件,至于怎么生成網站很多

服務端:

//wsdl服務端Require './server.class.php';$server = new SoapServer('./server.wsdl');$server->setClass('Server');$server->handle();

server.class.php類代碼

class Server {  public function auth($a){    if($a != '123456789'){    throw new SoapFault('Server', '您無權訪問');    }  }  public function test() {    return 'you are testing';  }}

客戶端:

//wsdl文件客戶端$soap = new SoapClient('http://192.168.0.153/hao/server.wsdl'); //如果是遠程,那當然寫dizzylion.wsdl的URL了。$h = new SoapHeader('http://192.168.0.153/hao/', 'auth', '123456789', false, SOAP_ACTOR_NEXT);$soap->__setSoapHeaders(array($h));try {echo $soap->test();} catch (Exception $e) {echo $e->getMessage();}

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费看| 亚洲欧美激情在线视频| 国产美女久久精品| 不卡伊人av在线播放| 国产三级精品网站| 久久影院资源站| 亚洲欧美在线看| 久久综合88中文色鬼| 日韩在线观看免费高清完整版| 国产日产久久高清欧美一区| 麻豆国产精品va在线观看不卡| 美日韩丰满少妇在线观看| 国产精品偷伦一区二区| 日本91av在线播放| 97国产精品免费视频| 国产美女精品视频免费观看| 日韩一区二区欧美| 全球成人中文在线| 久久精品人人爽| 国内外成人免费激情在线视频网站| 欧美极品少妇全裸体| 亚洲最大av在线| 成人久久久久爱| 欧洲成人免费视频| 亚洲国产精品va在线看黑人动漫| 在线观看欧美日韩国产| 国产女精品视频网站免费| 欧美特级www| 日韩精品中文字幕在线播放| 欧美日韩精品在线| 中文字幕欧美亚洲| 668精品在线视频| 欧美亚洲第一区| 精品久久久久久中文字幕| 国产一区二区三区三区在线观看| 亚洲视频999| 亚洲欧美国产va在线影院| 欧美乱妇高清无乱码| 日本久久中文字幕| 在线日韩中文字幕| 久久久国产精品视频| 91久久中文字幕| 欧美激情亚洲另类| 亚洲精品福利资源站| 亚洲男人天堂网站| 91深夜福利视频| 欧美成人四级hd版| 日本视频久久久| 日韩精品一区二区三区第95| 久久久久久国产精品美女| 国产成人精品久久| 亚洲国产高清高潮精品美女| 日韩av资源在线播放| 狠狠做深爱婷婷久久综合一区| 日韩美女免费线视频| 国产日韩精品入口| 亚洲三级免费看| 亚洲综合色激情五月| 国产一区二区三区精品久久久| 日韩国产精品亚洲а∨天堂免| 久久精品视频在线播放| 国产有码在线一区二区视频| 国产精品吴梦梦| 欧美另类99xxxxx| 久久久久99精品久久久久| 日韩欧美国产骚| 精品久久久久久久久久ntr影视| 国产成人免费91av在线| 国产成人精品一区二区在线| 亚洲激情视频网| 欧美日韩人人澡狠狠躁视频| 中文字幕亚洲天堂| 色悠久久久久综合先锋影音下载| 久久九九精品99国产精品| 69国产精品成人在线播放| 亚洲精品美女久久久久| 久久综合九色九九| 久久精品视频中文字幕| 亚洲一区二区三区毛片| 精品无人区乱码1区2区3区在线| 欧美日韩亚洲国产一区| 欧美福利视频在线观看| 国产日韩一区在线| 亚洲a在线观看| 国产精品久久久久久久久久东京| 国产精品中文字幕久久久| 亚洲a一级视频| 日韩在线视频线视频免费网站| 国产手机视频精品| 欧美日韩另类在线| 欧美二区在线播放| 亚洲高清久久网| 亚洲精品中文字幕av| 久久精品一本久久99精品| 亚洲区在线播放| 欧美成人精品影院| 欧美激情aaaa| 欧美老女人性生活| 国产91在线播放九色快色| 中文字幕精品久久久久| 奇米成人av国产一区二区三区| 日韩欧美极品在线观看| 国产欧美亚洲精品| 日韩在线观看免费高清| 国产日韩欧美电影在线观看| 亚洲字幕在线观看| 国产成人精品在线观看| 国产+成+人+亚洲欧洲| 午夜精品久久久99热福利| 精品成人国产在线观看男人呻吟| 国产精品亚洲网站| 欧美激情第一页xxx| 国产精品香蕉国产| 久久人人爽人人| 97精品在线观看| 久久高清视频免费| 欧美激情极品视频| 日韩最新中文字幕电影免费看| 精品国产一区久久久| 日本欧美精品在线| 91最新在线免费观看| 欧美怡红院视频一区二区三区| 精品一区电影国产| 中文字幕一区二区精品| 一区二区三区四区视频| 欧洲美女7788成人免费视频| 最新69国产成人精品视频免费| 欧美日韩ab片| 国产精品v日韩精品| 国产欧美日韩视频| 日韩欧美大尺度| 亚洲欧美激情另类校园| 欧美日韩精品国产| 欧美激情国产日韩精品一区18| 亚洲tv在线观看| 日韩在线一区二区三区免费视频| 国产成人自拍视频在线观看| 欧美在线视频一二三| 欧美—级高清免费播放| 91精品成人久久| 91系列在线播放| 中文字幕9999| 欧美国产在线电影| 久久成年人免费电影| 青青草一区二区| 一区二区三区亚洲| 国产精品99一区| 国产精品欧美一区二区三区奶水| 日本成人精品在线| 亚洲欧美日韩爽爽影院| 欧美视频中文字幕在线| 国内精品久久久久久中文字幕| 成人免费网站在线看| 亚洲嫩模很污视频| 最新国产成人av网站网址麻豆| 国产精品情侣自拍| 久久精品国产2020观看福利| 欧美一区二区大胆人体摄影专业网站| 色婷婷成人综合| 国产精品av免费在线观看| 国产精品久久久久久久久男| 中文字幕亚洲一区二区三区| 国产97人人超碰caoprom| 欧美日本国产在线|