WebServices能干什么?
WebServices 可以將html' target='_blank'>應(yīng)用程序轉(zhuǎn)換為網(wǎng)絡(luò)應(yīng)用程序。
通過(guò)使用 WebServices,您的應(yīng)用程序可以向全世界發(fā)布信息,或提供某項(xiàng)功能。
好了,關(guān)于WebServices網(wǎng)上資料很多,就不過(guò)多介紹了,直接進(jìn)入主題。
PHP有兩個(gè)擴(kuò)展類(lèi)庫(kù)可以實(shí)現(xiàn)WebServices,一個(gè)是NuSoap,一個(gè)是php官方自帶的Soap擴(kuò)展,在使用上大致都差不多,就拿官方自帶的Soap擴(kuò)展來(lái)說(shuō)吧。
在Soap編寫(xiě)WebServices中主要用到了SoapClient,SoapServer,SoapFault三個(gè)類(lèi)。
SoapClient:用戶(hù)訪(fǎng)問(wèn)的類(lèi),也就是客戶(hù)端,使用WebServices的類(lèi)
SoapServer:提供WebServices類(lèi),服務(wù)端
SoapFault:異常處理類(lèi)
作為示例,寫(xiě)個(gè)超級(jí)簡(jiǎn)單的的WebServices來(lái)感受下吧,直接代碼說(shuō)話(huà)
1、Myself.class.php --業(yè)務(wù)邏輯類(lèi),功能實(shí)現(xiàn)類(lèi)
1 <?php2 //業(yè)務(wù)邏輯類(lèi)3 class Myself{4 public function info(){5 return "新浪微博:Balla_兔子,求關(guān)注啦~";6 }7 }8 ?>很簡(jiǎn)單,無(wú)需多余解釋?zhuān)祷匾粋€(gè)字符串。
2、soapServer.php --服務(wù)端類(lèi),提供服務(wù)
1 <?php 2 //服務(wù)端 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模式,在實(shí)例化SoapServer類(lèi)時(shí),一個(gè)參數(shù)是放WSDL文件,在non-WSDL模式里,可以為空,把配置參數(shù)以數(shù)組的形式寫(xiě)在第二個(gè)參數(shù)。
如果用的是WSDL模式,可以直接用WSDL文件讓服務(wù)器讀取配置參數(shù),此時(shí)可以省略第二個(gè)數(shù)組參數(shù)。
配置參數(shù)有許多,上面為簡(jiǎn)單舉例只列出2個(gè),具體大家可以在網(wǎng)上查查
uri --命名空間
location --服務(wù)地址
1、WSDL模式 在WSDL模式中,構(gòu)造器可以使用WSDL文件名作為參數(shù),并從WSDL中提取服務(wù)所使用的信息。
2、non-WSDL模式 在non-WSDL模式中,使用參數(shù)來(lái)傳遞要使用的信息,用來(lái)管理服務(wù)的行為。
在SoapServer類(lèi)的眾多方法中,有三個(gè)方法比較重要。它們是SoapServer::setClass()、SoapServer::addFunction()、SoapServer::handle()。
特別注意,在handle方法之前之后均不能輸出任何參數(shù),否則會(huì)出錯(cuò)。
3、soapClient.php --客戶(hù)端類(lèi),使用服務(wù)
1 <?php 2 //客戶(hù)端 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類(lèi)可以作為給定WebServices的客戶(hù)端。
它有兩種操作形式:(和SoapServer的兩種模式差不多)
1、WSDL 模式
2、Non-WSDL 模式
以上就是利用PHP SOAP擴(kuò)展實(shí)現(xiàn)的簡(jiǎn)單WebServices,我們?cè)L問(wèn)soapClient.php試試看

輕松搞定~
附:
現(xiàn)在大多的WebServices接口的返回值是JSON或XML,我們可以在內(nèi)部自己定義賦值。
常用函數(shù) file_get_contents、json_encode、json_decode等
這里有篇關(guān)于json操作時(shí)該注意的事項(xiàng):http://www.cnblogs.com/lichenwei/p/3888586.html
PHP編程鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注