设为首页 收藏本站
查看: 242|回复: 0

[经验分享] 关于PHP+SOAP

[复制链接]

尚未签到

发表于 2017-3-20 14:03:14 | 显示全部楼层 |阅读模式
关于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;        //错误信息
     

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-352509-1-1.html 上篇帖子: 深入学习PHP配置 下篇帖子: php真变态。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表