程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 利用PHP SOAP擴展實現簡單Web Services

利用PHP SOAP擴展實現簡單Web Services

編輯:關於PHP編程

利用PHP SOAP擴展實現簡單Web Services


WebServices能干什麼?   WebServices 可以將應用程序轉換為網絡應用程序。   通過使用 WebServices,您的應用程序可以向全世界發布信息,或提供某項功能。       好了,關於WebServices網上資料很多,就不過多介紹了,直接進入主題。   PHP有兩個擴展類庫可以實現WebServices,一個是NuSoap,一個是php官方自帶的Soap擴展,在使用上大致都差不多,就拿官方自帶的Soap擴展來說吧。   在Soap編寫WebServices中主要用到了SoapClient,SoapServer,SoapFault三個類。   SoapClient:用戶訪問的類,也就是客戶端,使用WebServices的類   SoapServer:提供WebServices類,服務端   SoapFault:異常處理類       作為示例,寫個超級簡單的的WebServices來感受下吧,直接代碼說話       1、Myself.class.php  --業務邏輯類,功能實現類   復制代碼 1 <?php 2     //業務邏輯類 3     class Myself{ 4         public function info(){ 5             return "新浪微博:Balla_兔子,求關注啦~"; 6         } 7     } 8 ?> 復制代碼 很簡單,無需多余解釋,返回一個字符串。       2、soapServer.php  --服務端類,提供服務   復制代碼  1 <?php  2     //服務端  3     require_once('Myself.class.php');  4     $parameter=array(  5         'uri'=>'http://localhost/',  6         'location'=>'http://localhost/soap/soapServer.php'  7         );  8     $soapServer=new SoapServer(null,$parameter);  9     $soapServer->setClass('Myself'); 10     $soapServer->handle(); 11 ?> 復制代碼 SoapServer有兩種操作模式:   上面舉例的是non-WSDL模式,在實例化SoapServer類時,一個參數是放WSDL文件,在non-WSDL模式裡,可以為空,把配置參數以數組的形式寫在第二個參數。   如果用的是WSDL模式,可以直接用WSDL文件讓服務器讀取配置參數,此時可以省略第二個數組參數。   配置參數有許多,上面為簡單舉例只列出2個,具體大家可以在網上查查   uri  --命名空間   location  --服務地址   1、WSDL模式  在WSDL模式中,構造器可以使用WSDL文件名作為參數,並從WSDL中提取服務所使用的信息。   2、non-WSDL模式  在non-WSDL模式中,使用參數來傳遞要使用的信息,用來管理服務的行為。       在SoapServer類的眾多方法中,有三個方法比較重要。它們是SoapServer::setClass()、SoapServer::addFunction()、SoapServer::handle()。    特別注意,在handle方法之前之後均不能輸出任何參數,否則會出錯。       3、soapClient.php  --客戶端類,使用服務   復制代碼  1 <?php  2     //客戶端  3     $parameter=array(  4         'uri'=>'http://localhost/',  5         'location'=>'http://localhost/soap/soapServer.php'  6         );  7     try{  8         $soapClient=new SoapClient(null,$parameter);  9         echo $soapClient->info(); 10  11     }catch(Exception $e){ 12         echo $e->getMessage(); 13     } 14  15 ?> 復制代碼 SoapClient類可以作為給定WebServices的客戶端。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved