加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用SOAP扩展开发WebService(PHP)

发布时间:2020-12-17 01:27:59 所属栏目:安全 来源:网络整理
导读:PHP 实现 WebService ,它作为一种扩展存在于 PHP 中。 php 官方的 SOAP 扩展, 优势 是用 c 开发,相比 nusoap 效率上较优。 1. 在默认情况下,这个扩展是没有被开启的。打开 php.ini 文件,找到 ;extension=php_soap.dll 这行,去掉注释符 “;” ,保存并

PHP实现WebService,它作为一种扩展存在于PHP中。php官方的SOAP扩展,优势是用c开发,相比nusoap效率上较优。
1.
在默认情况下,这个扩展是没有被开启的。打开 php.ini 文件,找到;extension=php_soap.dll这行,去掉注释符“;”,保存并重启 Apache 服务。
SoapServer
类和SoapClient类有两种操作模式:WSDL模式和non-WSDL模式。
WSDL模式中,构造器可以使用WSDL文件名作为参数,并从WSDL中提取服务所使用的信息。non-WSDL模式中使用参数来传递要使用的信息。
2.
服务端soapService.php
<?php

??? /*

?????? wsdl方式提供WebService

?????? $server = new SoapServer('Calculator.wsdl');

??? */

??? //non-wsdl方式提供WebService(指定相应的uri)

??? $server = new SoapServer(null,array("uri"=>"soapService.php"));

??? $server -> setClass("Calculator");

??? $server -> handle();

??? Class Calculator

??? {

?????? /**

?????? ?* Add the two figures together

?????? ?* @param $num1

?????? ?* @param $num2

?????? ?*/

?????? function addition($num1,$num2) {

?????????? $result = $num1+$num2;

?????????? return "{$num1} {$num2} ,结果为 ".$result." ";

?????? }

??? }
?>

然后利用Zend Studio将此php类文件生成WSDL文件。( 发现zend studio 7.x版没有这个功能

,又不想手动去写,盛怒之下把它给卸载了,装上了6.1.2版。)
3.
客户端soapClient.php
<?php

??? try {

?????? /*

?????????? wsdl方式调用WebService(函数改动后须重新生成wsdl)

?????????? $soap = new SoapClient("http://localhost/WebService/Calculator.wsdl");

??? ??? */?

?????? //non-wsdl方式调用WebService

?????? $soap = new SoapClient(null,array(
                 'location'=> "http://localhost/WebService/soapService.php",
                 'uri' => 'soapService.php' ) );?????

?????? //两种方式调用函数

?????? $result1 = $soap->addition ( 200,160 );

?????? $result2 = $soap->__soapCall ( "addition",array (50,70 ) );

?????? echo $result1 . "<br/>" . $result2;

??? }

??? catch ( SoapFault $e ) { echo $e->getMessage (); }

??? catch ( Exception $e ) { echo $e->getMessage (); }
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读