使用PHP的soap扩展, 进行wdsl操作
2014-07-17 16:55
239 查看
本文是一个使用php soap访问webservice的例子.
wsdl文件请见http://www.webxml.com.cn/ 这个网站. 里面有很多好用的服务器.
大部分可以免费使用, 有一部分要收费.
以中文简繁转换为例.
简繁转换的wsdl文件地址为: http://webservice.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl
下面是PHP代码, 其中有说明.
以下为上面例子的返回值:
函数声明
类型定义
从这个输出中, 可以看到,
这是简体转换为繁体的函数.
参数 toTraditionalChinese
结构为:
对应 于PHP, 就是一个数组, 以sText为键, 值为字符串,
例如: array( 'sText' => '要转成繁体的汉字' )
此函数的返回值为:
这对于PHP就是, 一个stdClass, 有一个叫做toTraditionalChineseResult的属性
下面是一个有完整返回值的PHP代码, 其中包含发送的xml信息和接收的xml信息.
以下是上面这个例子的返回值:
object(stdClass)[2]
public 'toTraditionalChineseResult' => string '我要轉成繁體哦, 龍' (length=26)
我要轉成繁體哦, 龍
以下为收发信息
string 'POST /WebServices/TraditionalSimplifiedWebService.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.13
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://webxml.com.cn/toTraditionalChinese"
Content-Length: 305
' (length=269)
string '<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webxml.com.cn/"><SOAP-ENV:Body><ns1:toTraditionalChinese><ns1:sText>我要转成繁体哦, 龙</ns1:sText></ns1:toTraditionalChinese></SOAP-ENV:Body></SOAP-ENV:Envelope>
' (length=305)
string 'HTTP/1.1 200 OK
Date: Thu, 17 Jul 2014 08:55:43 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 420
' (length=228)
string '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><toTraditionalChineseResponse xmlns="http://webxml.com.cn/"><toTraditionalChineseResult>我要轉成繁體哦,
龍</toTraditionalChineseResult></toTraditionalChineseResponse></soap:Body></soap:Envelope>' (length=420)
wsdl文件请见http://www.webxml.com.cn/ 这个网站. 里面有很多好用的服务器.
大部分可以免费使用, 有一部分要收费.
以中文简繁转换为例.
简繁转换的wsdl文件地址为: http://webservice.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl
下面是PHP代码, 其中有说明.
<?php $wsdl = 'http://webservice.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl'; // 以wsdl方式, 实例化类. $soap = new SoapClient( $wsdl ); var_dump ( $soap->__getFunctions() ); // 这是此接口可以提供哪些服务, 就是函数定义, 有参数, 有返回值 var_dump( $soap->__getTypes() ); // 这是此接口使用的数据类型.
以下为上面例子的返回值:
函数声明
array (size=4) 0 => string 'toSimplifiedChineseResponse toSimplifiedChinese(toSimplifiedChinese $parameters)' (length=80) 1 => string 'toTraditionalChineseResponse toTraditionalChinese(toTraditionalChinese $parameters)' (length=83) 2 => string 'toSimplifiedChineseResponse toSimplifiedChinese(toSimplifiedChinese $parameters)' (length=80) 3 => string 'toTraditionalChineseResponse toTraditionalChinese(toTraditionalChinese $parameters)' (length=83)
类型定义
array (size=4) 0 => string 'struct toSimplifiedChinese { string sText; }' (length=45) 1 => string 'struct toSimplifiedChineseResponse { string toSimplifiedChineseResult; }' (length=73) 2 => string 'struct toTraditionalChinese { string sText; }' (length=46) 3 => string 'struct toTraditionalChineseResponse { string toTraditionalChineseResult; }' (length=75)
从这个输出中, 可以看到,
toTraditionalChineseResponse toTraditionalChinese(toTraditionalChinese $parameters)
这是简体转换为繁体的函数.
参数 toTraditionalChinese
结构为:
struct toTraditionalChinese { string sText; }
对应 于PHP, 就是一个数组, 以sText为键, 值为字符串,
例如: array( 'sText' => '要转成繁体的汉字' )
此函数的返回值为:
struct toTraditionalChineseResponse { string toTraditionalChineseResult; }
这对于PHP就是, 一个stdClass, 有一个叫做toTraditionalChineseResult的属性
下面是一个有完整返回值的PHP代码, 其中包含发送的xml信息和接收的xml信息.
<?php // wsdl地址 $wsdl = 'http://webservice.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl'; // 实例化, trace表示要记录发送接收的xml数据 $soap = new SoapClient( $wsdl, array( 'trace' => true) ); // 直接调用这个函数, 因为在此对象中, 所有的函数都是以双下划线开头, 所以不会有冲突. $rs = $soap->toTraditionalChinese( array( 'sText' => '我要转成繁体哦, 龙' )); // 显示转换以后的值, stdClass对象. var_dump( $rs ); // 显示转换的内容, 字符串 echo $rs->toTraditionalChineseResult; echo '<hr />以下为收发信息'; // 发送HTTP头 var_dump( $soap->__getLastRequestHeaders() ); // 发送的HTTP_BODY var_dump( $soap->__getLastRequest() ); // 接收的HTTP头 var_dump( $soap->__getLastResponseHeaders() ); // 接收的HTTP_BODY var_dump( $soap->__getLastResponse() );
以下是上面这个例子的返回值:
object(stdClass)[2]
public 'toTraditionalChineseResult' => string '我要轉成繁體哦, 龍' (length=26)
我要轉成繁體哦, 龍
以下为收发信息
string 'POST /WebServices/TraditionalSimplifiedWebService.asmx HTTP/1.1
Host: webservice.webxml.com.cn
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.3.13
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://webxml.com.cn/toTraditionalChinese"
Content-Length: 305
' (length=269)
string '<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webxml.com.cn/"><SOAP-ENV:Body><ns1:toTraditionalChinese><ns1:sText>我要转成繁体哦, 龙</ns1:sText></ns1:toTraditionalChinese></SOAP-ENV:Body></SOAP-ENV:Envelope>
' (length=305)
string 'HTTP/1.1 200 OK
Date: Thu, 17 Jul 2014 08:55:43 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 420
' (length=228)
string '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><toTraditionalChineseResponse xmlns="http://webxml.com.cn/"><toTraditionalChineseResult>我要轉成繁體哦,
龍</toTraditionalChineseResult></toTraditionalChineseResponse></soap:Body></soap:Envelope>' (length=420)
相关文章推荐
- php使用ffmpeg-php扩展库进行视频截图
- 从 PHP 脚本中访问企业应用程序 使用 PHP 5 SOAP 扩展访问 WebSphere Web 服务
- PHP 自身扩展 SOAP使用详解 (二)
- PHP的SOAP扩展原理和使用(转)
- PHP 使用 mcrypt 扩展中的 mcrypt_encrypt() 和 mcrypt_decrypt() 对数据进行加密和解密
- 在php中使用ffmpeg-php扩展对视频进行截图
- 使用Windows缓存进行PHP的扩展
- PHP的SOAP扩展原理和使用
- PHP使用SOAP扩展实现WebService的方法
- [PDO绑定参数]使用PHP的PDO扩展进行批量更新操作
- PHP的SOAP扩展原理和使用(转)
- PHP使用SOAP扩展实现WebService的方法
- PHP内置SOAP扩展客户端的使用例子
- PHP 自身扩展 SOAP 的使用详解
- php使用ffmpeg-php扩展库进行视频截图
- [PDO绑定参数]使用PHP的PDO扩展进行批量更新操作
- WebService开发(二) 如何使用Soap扩展
- 扩展类库:使用微软的 Visual Studio International Pack 1.0 进行网站简体与繁体的互转和得到汉字、拼音、笔画等相关信息
- 使用 AJAX 调用SOAP Web 服务,第 2 部分: 扩展 Web 服务客户机
- PHP SOAP扩展