利用PHP SOAP擴充實現簡單Web Services,soapservices_PHP教程

來源:互聯網
上載者:User

利用PHP SOAP擴充實現簡單Web Services,soapservices


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 php2     //商務邏輯類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的用戶端。
它有兩種操作形式:(和SoapServer的兩種模式差不多)
1、WSDL 模式

2、Non-WSDL 模式

以上就是利用PHP SOAP擴充實現的簡單WebServices,我們訪問soapClient.php試試看

輕鬆搞定~

附:

現在大多的WebServices介面的傳回值是JSON或XML,我們可以在內部自己定義賦值。

常用函數 file_get_contents、json_encode、json_decode等

這裡有篇關於json操作時該注意的事項:http://www.cnblogs.com/lichenwei/p/3888586.html


php 怎通過SOAP(Web Services)實現上傳與下載檔案? - PHP進階討論如題 了

把檔案用二進位讀取,然後把他作為xml的實體傳遞就好了 查看原帖>>
 

php SoapClient 是什

baike.baidu.com/view/2099744.htm
 

http://www.bkjia.com/PHPjc/859227.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/859227.htmlTechArticle利用PHP SOAP擴充實現簡單Web Services,soapservices WebServices能幹什嗎? WebServices 可以將應用程式轉換為網路應用程式。 通過使用 WebServices,您的...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.