关于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);
说明:$wsdl
为SOAP
使用的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;
//
错误信息
分享到:
相关推荐
在IT行业中,PHP和SOAP(Simple Object Access Protocol)是一种常见的技术组合,用于构建分布式系统,特别是在Web服务领域。本文将深入探讨PHP与SOAP通信的工作原理、实现方法以及相关的知识点。 SOAP是一种基于...
Java和SOAP(Simple Object Access Protocol)是Web服务技术中的重要组成部分,它们允许不同的应用程序通过互联网进行通信。在本实例中,我们将深入探讨如何使用Java来创建和使用SOAP Web服务,以及涉及的相关jar包...
以下是关于"PHP的soapDemo"的相关知识点: 1. **SOAP简介**: SOAP是一种基于XML的协议,它允许应用程序通过HTTP、SMTP等传输协议交换结构化信息。SOAP消息主要由三部分组成:Header、Body和Envelope。它提供了一...
PHP-SOAP扩展详解:构建Web服务的利器 在当今的互联网环境中,Web服务作为一种通信协议,使得应用程序之间能够交换数据并实现功能整合。PHP-SOAP扩展是PHP语言中的一个重要组成部分,它允许开发者创建SOAP(Simple ...
PHP SOAP 操作实例详解 SOAP(Simple Object Access Protocol),简单对象访问协议,是一种基于XML的协议,用于在不同网络环境下的应用程序之间交换数据。在PHP中,SOAP库提供了与SOAP服务器交互的能力,允许开发者...
PHP webservice SOAP解决Could not connect to host
PHP的SOAP扩展允许开发者创建和使用SOAP服务,实现不同系统间的互操作性。下面我们将深入探讨PHP如何利用SOAP接口服务器来实现内部接口的对外转换。 一、SOAP接口服务器的理解 SOAP接口服务器是基于SOAP协议构建的...
【PHP SOAP DEMO】是一个基于PHP的SOAP服务示例,它展示了如何在PHP环境中实现SOAP(Simple Object Access Protocol)客户端和服务端的应用。SOAP是一种用于在Web上交换结构化和类型化信息的协议,通常用于远程过程...
标题“php编写webservice soap服务端及客户端”意味着我们将讨论如何使用PHP实现SOAP协议的两个关键部分:服务提供者和服务消费者。 首先,让我们深入了解PHP如何构建SOAP服务端。在PHP中,我们可以使用SoapServer...
【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扩展 进入安装原php的源码目录, cd ext cd soap phpize ./configure --with-php-config=/var/php/bin/php-config (一定要...
本教程将聚焦于PHP的Web服务实现,特别是SOAP(Simple Object Access Protocol)协议以及WSDL(Web Services Description Language)的密码验证功能,这些都是Web服务高级应用的重要组成部分。 首先,我们要理解...
PHP实现的Web Services 完整...PHP.INI,请开启php_soap。 服务端:直接解压到网站根目录下,访问地址:http://localhost/hbj/wsdl.php?wsdl 客户端:http://localhost/hbj/Client.php ,显示hello world.表示成功。
//从soap目录导class.nusoap.php类文件 $client = new nusoap_client($url. "?WSDL", "wsdl"); $client->soap_defencoding = 'utf-8'; $client->decode_utf8 = false; $client->xml_encoding = 'utf-8'; ...
PHP的SOAP扩展可以用来提供和使用Web services。换句话说,PHP开发者可以利用这个PHP扩展来写他们自己的Web services,也可以写一些客户端来使用给定的Web services。
标题中的“一个支持SOAP11和12规范的PHP客户端”指的是一个PHP开发的软件工具,它能够处理基于SOAP(Simple Object Access Protocol)1.1和1.2版本的Web服务请求。SOAP是一种用于交换结构化和类型化的信息的协议,常...
php soapclient 访问java service server
采用php soap扩展编写,可将内部接口整理后, 自写义对外转换接口 使用http与soap 可保存调用日志 与错误信息 soap调用第三方接口并处理 按自已规范统一返回数据 http 对外调用自已处理好的数据接口
接着,配置`config/soap.php`文件,添加SOAP服务的URL和其他必要的选项。 **使用laravel-soap进行调用** 在Laravel应用中,可以创建一个SOAP客户端实例,然后调用服务的方法。例如: ```php use WsScgi\LaravelSoap...
当我们谈论“PHP SOAP头验证”时,我们指的是在使用PHP作为客户端或者服务器端来处理SOAP请求时,如何验证消息头中的信息,确保数据的安全性和准确性。 在服务器端,SOAP头验证是验证接收到的SOAP请求中的头部信息...