`

利用SOAP扩展开发WebService(PHP)

阅读更多

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 (); }
?>

 

转自 http://blog.csdn.net/painstaker/archive/2010/09/08/5870688.aspx

分享到:
评论

相关推荐

    PHP使用SOAP扩展实现WebService的方法

    SOAPHeader用于插入各种其他消息,如安全性声明等,来扩展WebService的功能。SOAPBody则是消息正文,包含了通过XML序列化后的方法调用信息和返回结果。 在PHP中,实现WebService的一个常用方式是使用内置的SOAP扩展...

    php_soap webservice demo

    php扩展 php_soap webservice服务端搭建demo 附件中包含所有文件,详细说明见readme

    php 实现 webservice

    2. **维护与更新**:NuSOAP自2005年后未再更新,而SOAP扩展库随PHP版本迭代持续优化,尤其是在PHP5及后续版本中,对WebService的支持更加完善。 #### 实现细节与注意事项 1. **WSDL缓存**:为了提升效率,PHP对...

    php webservice soap

    标题“php webservice soap”暗示我们将探讨PHP如何作为一个客户端,利用SOAP库来调用Web服务。这通常涉及到创建一个SOAP客户端,设置必要的参数,然后执行SOAP请求来获取或发送数据。 描述中的“php 调用...

    Laravel开发-laravel-webservice

    【Laravel开发-laravel-webservice】是一个专注于在Laravel框架中构建Web服务的项目,它利用了httpful库来提供高效、简洁的API交互。在本文中,我们将深入探讨Laravel框架的基础,Web服务的概念,以及httpful库如何...

    使用php搭建webService服务器(代码实例)

    1. 安装SOAP扩展:需要安装 PHP 的 SOAP 扩展,以便使用 SOAP 协议来传输数据。 2. 创建 WSDL 文件:根据需要创建 WSDL 文件,定义 Web Service 的接口和行为。 3. 实现 Web Service:使用 PHP 实现 Web Service 的...

    php实现通过soap调用.Net的WebService asmx文件

    在本文中,我们将深入探讨如何使用PHP通过SOAP协议调用.NET的WebService ASMX文件。SOAP(Simple Object Access Protocol)是一种轻量级的消息协议,用于在不同的应用程序之间交换数据。而ASMX是.NET Framework中...

    PHP WebService实现

    但从PHP 5开始,PHP内建了SOAP扩展,简化了开发过程。Web Service有两种工作模式:WSDL(Web Services Description Language)模式和non-WSDL模式。WSDL模式提供了一个XML文件来描述服务接口,而non-WSDL模式则不...

    基于axis2开发的webservice机soap的相关资料

    Axis2是Apache软件基金会开发的一个Web Service引擎,它是Axis1.x的下一代产品,提供了更高效、可扩展和模块化的架构。Axis2支持SOAP 1.1和1.2,XML-over-HTTP,RESTful风格的服务,并且可以处理多种消息格式,如...

    C# 调用PHP webservice

    WebService通常采用标准的XML(可扩展标记语言)格式来传输数据,并通过HTTP(超文本传输协议)进行通信,使得不同平台和语言的应用程序可以无缝交互。在这个场景中,我们将探讨如何使用C#调用PHP编写的WebService。...

    php WebService用法实例

    Web服务是一种通过网络进行应用程序间通信的方法,而PHP的`Soap`扩展提供了方便的接口来实现这一功能。 首先,让我们了解`SoapServer`。`SoapServer`是PHP中用于创建SOAP服务器端点的类,它能够处理客户端发送的...

    Java调用php的webservice

    NuSOAP是一个轻量级的PHP库,支持SOAP 1.1和1.2标准,能够快速构建或调用Webservice。 ##### 1. NuSOAP配置与引入 ```php require_once("lib/nusoap.php"); ``` 这行代码表示引入NuSOAP库,确保PHP脚本能访问NuSOAP...

    PHP webservice传输附件和文章源码

    SOAP通常用于处理结构化的XML数据,而REST则更倾向于使用JSON格式,但两者都可用于PHP WebService的实现。 在描述中提到的问题是,PHP WebService已经成功实现了文章的传输,但附件部分遇到了困难。这可能是因为...

    PHP使用SOAP调用.net的WebService数据

    在PHP中,可以使用内置的SOAP扩展来实现对SOAP Web服务的调用。 首先,确保你的PHP环境已经启用了SOAP扩展。检查`php.ini`配置文件,找到`extension=php_soap.dll`这一行,并去掉前面的分号(如果有的话),然后...

    短信群发webservice开发源码及文档

    【短信群发Webservice开发源码及文档】是关于构建一个能够实现批量发送短信功能的Web服务的资源包。...开发者需要熟悉Webservice的相关技术和短信通信协议,以便成功地利用这些源码和文档进行开发工作。

    phpStudy实现WebService实例,亲自测试及写了例子

    不需下载任何插件,仅需要在phpStudy中开启php扩展“php_soap”。(见图一) 所需的php_soap.dll自带,位置:D:\phpStudy\php53\ext\php_soap.dll(见图二) 生成WSDL文件 执行一次server.php,会自动生成hello....

    php开发webservice所用的nusop.php文档

    NuSOAP 是 PHP 环境下的 WEB 服务编程工具,用于创建或调用 WEB ... NuSOAP 完全由PHP语言编写,由一系列 PHP 类组成,不需要扩展库的支持,这种特性使得 NuSOAP 可以用于所有的 PHP 环境,不受服务器安全设置的影响。

    PHP使用SOAP调用API操作示例

    1. PHP的SOAP扩展介绍:PHP的SOAP扩展提供了一组用于构建和使用SOAP客户端和服务器端应用程序的类和函数。它允许开发者在PHP代码中调用Web服务,也允许PHP应用本身作为Web服务对外提供接口。 2. 图片转换为base64...

    CodeIgniter集成SOAP功能

    1. **安装SOAP库**:由于CodeIgniter默认并不包含SOAP类,我们需要首先安装PHP的SOAP扩展。在大多数服务器环境中,这通常是预装的。如果尚未安装,可以通过修改php.ini文件或使用Composer来添加。 2. **创建SOAP...

Global site tag (gtag.js) - Google Analytics