`
opensuse
  • 浏览: 186966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于PHP+SOAP

    博客分类:
  • php
阅读更多

关于PHP+SOAP

<!---->Ø      SOAP <!---->

<!---->1.      Simple  Object  Access   Protocol   简单对象访问协议 <!---->

主要包括下面四部分:

<!---->a)      SOAP 封装: 用于将传输数据中的内容, 发送端消息, 接收端信息和处理方式等信息封装起来以准备数据传输. <!---->

<!---->b)      SOAP 编码规则: 用于表示传输数据中各项的数据类型等信息 <!---->

<!---->c)      SOAP 远程过程调用协定: 用于进行远程过程调用及应答的协议 <!---->

<!---->d)      SOAP 绑定协议: 用于表示信息交换的底层协议 <!---->

<!---->Ø      PHP5 SOAP 应用及配置 <!---->

<!---->1.      PHP 5 中新增了内置的 SOAP 扩展,我们称之为 ext/soap 。它是作为 PHP 的一部分提供的,因此不需要下载、安装和管理单独的包。 <!---->

<!---->2.      ext/soap 可能已经编译但没有加载,因此需要更新 PHP 配置,以便加载 ext/soap 。编辑 php.ini 并找到 Dynamic Extensions 部分,在这里增加一行代码来自动加载该扩展。 在 Windows 上,这一代码行是:extension=php_soap.dll <!---->

如果以前没有加载过任何可选的扩展,可能还要设置 extension_dir 指令,让它指向包含扩展库(其中包括 php_soap )的目录:

extension_dir="C:/php/ext/" (在 Windows 上使用正斜杠)

<!---->3.      完成配置后ext/soap 显示为: <!---->

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400

这段配置控制了 SOAP 扩展的 WSDL 缓存特性。默认情况下,WSDL 描述文件在 24 小时(86400 秒)内都缓存在 /tmp 目录下。现在要设置 soap.wsdl_cache_enabled=0 ,否则,在开发代码时,您会遇到一些莫名其妙的行为。完成开发之后,要记得打开 WSDL 缓存 ,使代码运行得更快。

<!---->Ø      SOAP 扩展库( 主要包括三种对象) <!---->

<!---->1.      SoapServer : 用于在创建PHP 服务端页面时定义可被调用的函数及返回响应数据. <!---->

格式为: $soap = new SoapServer($wsdl, $array);

说明:$wsdlSOAP 使用的WSDL 文件, 是描述WebService 的一种标准格式. 设为NULL 表示不使用WSDL 模式. 如果想用的话可以用ZED 生成.

    $array SoapServer 的属性信息, 是一个数组.

注意 :$array 中包括一个uri,encoding, 如果是客户端程序中还要包含一个location.

    其中'uri ' 选项是必须的 ,但其值可以随便填 ,可以为空(''),不可以为null .

'encoding ' 对于中文的处理,是必须的,一般填'gb2312' ( 否则会出错, 因为默认为'utf-8' ).

 

该对象的addFunction 方法用来声明哪个函数可以被客户端调用,

语法格式为:$soap -> addFunction($function_name);

该对象的handle 方法用来处理用户的输入并调用相应的函数, 最后返回给客户端处理后的结果,

语法格式为:$soap -> handle([$soap_request]);

说明:$soap_request 是一个可选参数, 用来表示用户的请求信息, 如果不指定, 则表示服务器将接收用户的全部请求 .

<!---->2.      SoapClient : 用于调用远程服务器上的SoapServer 页面, 并实现了对相应函数的调用. <!---->

语法格式为:$soap = new SoapClient($wsdl, $array);

注意 : 对于soap client,'location ''uri' 选项都是必须的 ; 其中'location ' 必须为soap server URL , 必须准确,uri 似乎可以随便填,不过最好与soap server 中的uri 一致.'encoding ' 对于中文用户是必须的

创建该对象后, 调用服务器页面中的函数相当于调用SoapClient 的方法

语法格式为:$soap -> user_function($params);

说明:user_function 是服务器端定义的可以被调用中的函数中的一个或几个函数.

<!---->Ø        SoapFault : 用于生成在SOAP 访问过程中可能出现的错误. <!---->

语法格式为:$fault = new SoapFault($faultcode, $faultstring);

说明:$faultcode 是用户自定义的错误代码, 如果没有定义的话应该是HTTP( 印象中),$faultstring 是用户自定义的错误信息.

     该对象会在服务器端页面出现错误时自动生成, 或者通过用户自行创建SoatFault 对象来获得相应的错误信息.

在客户端捕获SoapFault 对象后, 可以通过下面的代码获得错误代码的错误信息

     $fault -> faultcode;          // 错误代码

     $fault -> faultstring;        // 错误信息

 

分享到:
评论

相关推荐

    php+soap通信

    在IT行业中,PHP和SOAP(Simple Object Access Protocol)是一种常见的技术组合,用于构建分布式系统,特别是在Web服务领域。本文将深入探讨PHP与SOAP通信的工作原理、实现方法以及相关的知识点。 SOAP是一种基于...

    java+soap整个实例包括jar包

    Java和SOAP(Simple Object Access Protocol)是Web服务技术中的重要组成部分,它们允许不同的应用程序通过互联网进行通信。在本实例中,我们将深入探讨如何使用Java来创建和使用SOAP Web服务,以及涉及的相关jar包...

    PHP的soapDemo

    以下是关于"PHP的soapDemo"的相关知识点: 1. **SOAP简介**: SOAP是一种基于XML的协议,它允许应用程序通过HTTP、SMTP等传输协议交换结构化信息。SOAP消息主要由三部分组成:Header、Body和Envelope。它提供了一...

    php-soap(web,server)

    PHP-SOAP扩展详解:构建Web服务的利器 在当今的互联网环境中,Web服务作为一种通信协议,使得应用程序之间能够交换数据并实现功能整合。PHP-SOAP扩展是PHP语言中的一个重要组成部分,它允许开发者创建SOAP(Simple ...

    php soap操作实例

    PHP SOAP 操作实例详解 SOAP(Simple Object Access Protocol),简单对象访问协议,是一种基于XML的协议,用于在不同网络环境下的应用程序之间交换数据。在PHP中,SOAP库提供了与SOAP服务器交互的能力,允许开发者...

    PHP SOAP解决Could not connect to host

    PHP webservice SOAP解决Could not connect to host

    PHP-soap接口服务器

    PHP的SOAP扩展允许开发者创建和使用SOAP服务,实现不同系统间的互操作性。下面我们将深入探讨PHP如何利用SOAP接口服务器来实现内部接口的对外转换。 一、SOAP接口服务器的理解 SOAP接口服务器是基于SOAP协议构建的...

    PHP SOAP DEMO

    【PHP SOAP DEMO】是一个基于PHP的SOAP服务示例,它展示了如何在PHP环境中实现SOAP(Simple Object Access Protocol)客户端和服务端的应用。SOAP是一种用于在Web上交换结构化和类型化信息的协议,通常用于远程过程...

    php编写webservice soap服务端及客户端

    标题“php编写webservice soap服务端及客户端”意味着我们将讨论如何使用PHP实现SOAP协议的两个关键部分:服务提供者和服务消费者。 首先,让我们深入了解PHP如何构建SOAP服务端。在PHP中,我们可以使用SoapServer...

    php soap实例

    【PHP SOAP】是一种在PHP中实现Web服务调用的技术,它允许PHP应用程序与其他支持SOAP(Simple Object Access...更多关于SOAP的信息可以在官方文档中找到,例如W3C的SOAP 1.2规范:http://www.w3.org/TR/soap12-part1/。

    soap.so linux下php驱动包

    soap.so linux下php驱动包 ,有些人无法打包,官方也没有提供下载。可以通过本地编译。 SOAP扩展 进入安装原php的源码目录, cd ext cd soap phpize ./configure --with-php-config=/var/php/bin/php-config (一定要...

    PHP webservice教程,soap wsdl密码验证,webservice高级应用

    本教程将聚焦于PHP的Web服务实现,特别是SOAP(Simple Object Access Protocol)协议以及WSDL(Web Services Description Language)的密码验证功能,这些都是Web服务高级应用的重要组成部分。 首先,我们要理解...

    PHP SOAP实现Web Services 完整实例WSDL服务端+客户端

    PHP实现的Web Services 完整...PHP.INI,请开启php_soap。 服务端:直接解压到网站根目录下,访问地址:http://localhost/hbj/wsdl.php?wsdl 客户端:http://localhost/hbj/Client.php ,显示hello world.表示成功。

    thinkphp下使用soap

    //从soap目录导class.nusoap.php类文件 $client = new nusoap_client($url. "?WSDL", "wsdl"); $client-&gt;soap_defencoding = 'utf-8'; $client-&gt;decode_utf8 = false; $client-&gt;xml_encoding = 'utf-8'; ...

    php-soap 扩展源文件

    PHP的SOAP扩展可以用来提供和使用Web services。换句话说,PHP开发者可以利用这个PHP扩展来写他们自己的Web services,也可以写一些客户端来使用给定的Web services。

    一个支持SOAP11和12规范的PHP客户端

    标题中的“一个支持SOAP11和12规范的PHP客户端”指的是一个PHP开发的软件工具,它能够处理基于SOAP(Simple Object Access Protocol)1.1和1.2版本的Web服务请求。SOAP是一种用于交换结构化和类型化的信息的协议,常...

    php soap client

    php soapclient 访问java service server

    PHP -soap接口服务器

    采用php soap扩展编写,可将内部接口整理后, 自写义对外转换接口 使用http与soap 可保存调用日志 与错误信息 soap调用第三方接口并处理 按自已规范统一返回数据 http 对外调用自已处理好的数据接口

    Laravel开发-laravel-soap Soap 协议客户端

    接着,配置`config/soap.php`文件,添加SOAP服务的URL和其他必要的选项。 **使用laravel-soap进行调用** 在Laravel应用中,可以创建一个SOAP客户端实例,然后调用服务的方法。例如: ```php use WsScgi\LaravelSoap...

    php soap 头验证

    当我们谈论“PHP SOAP头验证”时,我们指的是在使用PHP作为客户端或者服务器端来处理SOAP请求时,如何验证消息头中的信息,确保数据的安全性和准确性。 在服务器端,SOAP头验证是验证接收到的SOAP请求中的头部信息...

Global site tag (gtag.js) - Google Analytics