返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php soap是什么意思
  • 494
分享到

php soap是什么意思

soapphp 2015-04-05 22:04:31 494人浏览 绘本
摘要

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑一、php soap是什么意思?什么是wsdl,为什么要用他们?SOAP是基于XML和Http通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

一、php soap是什么意思?什么是wsdl,为什么要用他们?

SOAP是基于XML和Http通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的因特网浏览器及服务器的支持。

WSDL 指网络服务描述语言 (WEB Services Description Language),是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作。

我是做php的,你是java的,他是做.net,如果我们三个之间要进行通信,要进行数据交换,怎么办呢?我们需要一个能和我们都能通信的工具。soap,wsdl被创造出来,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

二、实例

如果php要使用soap的话,通常做法是,添加了一下php的soap模块,在php.ini里面加上soap.so,下面介绍一个不要添加soap.so文件,也可以实现soap

//包函nusoap.php
require_once('./lib/nusoap.php');
//创建服务端
$server=newsoap_server;
//定义客户端调用方法
$server->reGISter('hello');
//调用方法以及参数
functionhello($name) {
return'Hello, '.$name;
}
$HTTP_RAW_POST_DATA= isset($HTTP_RAW_POST_DATA) ?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>

p的方法

nusoap是php写的一个功能文件,包涵进来就可以用了,网上很多自己去搜一下吧。

不使用wsdl

a、服务端helloworld2.php

b、客户端hello.php

//包函nusoap.php
require_once('./lib/nusoap.php');
//新建一个soap客户端,调用服务端提供的wsdl
//$client = new soapclient('http://localhost/test/hellowsdl2.php?wsdl', true);
$client=newsoapclient('http://localhost/test/helloworld2.php');
//查看一下是不是报错
$err=$client->getError();
if($err) {
//显示错误
echo'
Constructor error
'.$err.'
';
}
//调用服务端的方法
$result=$client->call('hello',array('person'=>"this is a test"));
echo'
Result
';
print_r($result);
echo'
';
?>

使用wsld

a、服务器端

//包函nusoap.php
require_once('./lib/nusoap.php');
//新建一个soap服务
$server=newsoap_server();
//初始化支持wsdl
$server->configureWSDL('hellowsdl2','urn:hellowsdl2');
//定义数据结构来接收数据
$server->wsdl->addComplexType(
'Person',
'complexType',
'struct',
'all',
'',
array(
'firstname'=>array('name'=>'firstname','type'=>'xsd:string'),//后面的type定义数据的类型,这个是string
'age'=>array('name'=>'age','type'=>'xsd:int'),//后面的type定义数据的类型,这个是int
'gender'=>array('name'=>'gender','type'=>'xsd:string')//后面的type定义数据的类型,这个是string
)
);
$server->wsdl->addComplexType(
'SweepstakesGreeting',
'complexType',
'struct',
'all',
'',
array(
'greeting'=>array('name'=>'greeting','type'=>'xsd:string'),
'winner'=>array('name'=>'winner','type'=>'xsd:string')
)
);
//服务器定义的soap调用方法
$server->register('hello',// 方法名字hello,方法就在下面
array('person'=>'tns:Person'),// 客户端传来的变量
array('return'=>'tns:SweepstakesGreeting'),//返回参数
'urn:hellowsdl2',// soap名
'urn:hellowsdl2#hello',// soap的方法名
'rpc',// 使用的方式
'encoded',// 编码
'test'// 存档
);
//定义上面注册过的函数hello
functionhello($person) {
$greeting='Hello, '.$person['firstname'].'. It is nice to meet a '.$person['age'].' year old '.$person['gender'].'.';
$winner='Scott';
//要返回的数据
returnarray(
'greeting'=>$greeting,
'winner'=>$winner
);
}
// 请求时(试图)调用服务
$HTTP_RAW_POST_DATA= isset($HTTP_RAW_POST_DATA) ?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>

b、客户端

//包函nusoap.php
require_once('./lib/nusoap.php');
//新建一个soap客户端,调用服务端提供的wsdl
//$client = new soapclient('http://localhost/test/hellowsdl2.php?wsdl', true);
$client = new soapclient('http://localhost/test/helloworld2.php');
//查看一下是不是报错
$err = $client->getError();
if ($err) {
//显示错误
echo '
Constructor error
' . $err . '
';
}
//要向服务端要传的参数
$person = array('firstname' => 'Willi', 'age' => 22, 'gender' => 'male');
//调用服务端的方法
$result = $client->call('hello', array('person' => $person));
//错误审核
if ($client->fault) {
echo '
Fault
';
print_r($result);
echo '
';
} else {
$err = $client->getError();
if ($err) {
echo '
Error
' . $err . '
';
} else {
echo '
Result
';
print_r($result);
echo '
';
}
}
//显示请求信息
echo '
Request
';
echo '
' . htmlspecialchars($client->request, ENT_QUOTES) . '
';
//显示返回信息
echo '
Response
';
echo '
' . htmlspecialchars($client->response, ENT_QUOTES) . '
';
//显示调试信息
echo '
Debug
';
echo '
' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '
';
?>

上面二个例子不管是客户端,还是服务器端,都是用php写的,你可以试着用多种语言来写,来测试一下。不管你是用php的模块,还是用nusoap,里面具体方法就不在这多说了,手册里面都有。

SOAP在这里就不用介绍了, 这里只是简单的实现一个SOAP的实例, 不多说 ,看代码吧。 soap分为server和client, 我们要使client去调用server的代码. 首先看server短的代码:

这个是server端的代码: server.php

<?php     
//声明一个函数add() ,并返回它的值        function add($a,$b){        return $a+$b;        }    //实例化一个SoapServer对象, 并将add函数注册成为其方法        $server = new SoapServer(null,array('uri'=>'http://localhost/')); //指定server端代码的URI(资源标志符)        $server->addFunction("add");        $server->handle();?>

然后使用client端的代码来调用server端的代码: client的代码也很简单: 如下:

这个是client端的代码 client.php

<?php     
//建立一个参数数组,存储要访问的提供soap服务的计算机的地址与程序        $arrOptions=array(            'uri'=>'http://localhost/',            'location'=>'http://localhost/soap/server.php',  //注意: 这个location指定的是server端代码在服务器中的具体位置, 我的是在本地根目录下的soap目录中,            'trace'=>true,        );        $soapObject = new SoapClient(null,$arrOptions); //实例化客户端对象        echo $soapObject->add(20,30); //调用服务器端的函数add并返回值50?>

ok, 结束了 !

--结束END--

本文标题: php soap是什么意思

本文链接: https://lsjlt.com/news/641.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php soap是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑一、php soap是什么意思?什么是wsdl,为什么要用他们SOAP是基于XML和HTTP通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的...
    99+
    2015-04-05
    soap php
  • php中soap指的是什么意思
    这篇文章给大家分享的是有关php中soap指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。soap是基于XML和HTTP通信协议,在php中使用soap的方法是添加一下php的soap模块,也就是在p...
    99+
    2023-06-25
  • php 是什么意思
    本文操作环境:Windows7系统、PHP7.4版、DELL G3电脑php是什么意思 ?PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并...
    99+
    2015-10-12
    php
  • php是什么意思
    PHP是一种通用开源脚本语言,与C语言类似,是常用的网站编程语言,随着移动应用的兴起,也可用于开发API接口,几乎支持所有流行的数据库以及操作系统,PHP 语言作为当今热门的网站程序开发语言,它具有成本低、速度快、可移植性好、内置丰富的函数...
    99+
    2024-04-02
  • php cli是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,cli全称“Command Line Interface”,意思为“命令行接口”,是一种命令行运行模式。PHP的CLI命令行运行模式浅析在做开发的时候,我们...
    99+
    2020-05-15
    php cli
  • php explode是什么意思
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,explode的意思为“字符串转数组”。explode() 函数可以基于字符串分隔符拆分字符串,即它将一个字符串根据分隔符拆分为若干个子串,然后将这些子串组...
    99+
    2017-08-14
    php explode
  • php oop 是什么意思
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php oop 是什么意思?PHP 面向对象在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息...
    99+
    2020-07-26
    php oop
  • php vc15是什么意思
    本文操作环境:Windows7系统、PHP7.1、Dell G3。php vc15是什么意思?php vc15就是指该版本PHP是用Visual Studio 2017编译的,也就是说当用户下载VC15版本的PHP,就需要先安装“Visua...
    99+
    2020-09-14
    php vc15
  • php pre是什么意思
    本文操作环境:Windows7系统、PHP7.1、Dell G3。php pre是什么意思<pre> </pre>是html标签,意思是按原样输出不做更改。php代码中用pre主要是做错误代码输出时候,或者打印数组输...
    99+
    2017-09-06
    php pre
  • php中=是什么意思
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php中=是什么意思?PHP 中基础的赋值运算符是 "="。这意味着右侧赋值表达式会为左侧运算数设置值。如 z=x+y,右侧表达式为左侧运算数设置值。...
    99+
    2021-07-01
    php
  • php static 是什么意思
    本文操作环境:windows7系统、PHP7.4版、DELL G3电脑php static 是什么意思static是PHP内置关键词。静态(static)关键字 小技巧本页说明了用 static 关键字来定义静态方法和属性。static 也...
    99+
    2015-02-21
    php static
  • php spl是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php spl是什么意思SPL为PHP标准库。spl,指SPL - Standard PHP Library 标准PHP类库。内容主要包括数据结构类,迭代器,异常类,SP...
    99+
    2017-05-19
    php spl
  • php stdin是什么意思
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php stdin是什么意思PHP STDIN 用法:PHP 语言中 "STDIN" 用于从控制台读取内容,遇到此常量或者通过 fopen() 函数...
    99+
    2014-12-07
    php stdin
  • php version意思是什么
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。php version意思是什么?phpversion(PHP 4, PHP 5, PHP 7, PHP 8)phpversion — 获取当前的PHP版本说明 php...
    99+
    2016-07-23
    phpversion
  • php xor是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php xor是什么意思xor 属于PHP中的一个逻辑运算符,也叫“异或”运算符。语法:x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true...
    99+
    2022-04-29
    php xor
  • job php是什么意思
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑job php是什么意思?job.php是一种脚本文件,因为后缀名为“PHP”的文件就是一种程序语言的命名格式结尾。PHP(外文名:PHP: Hypertext Prep...
    99+
    2021-05-21
    php
  • php web是什么意思
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php web是什么意思web 是网页,网站;php 是一种程序语言;phpweb 是 用php做的网站.PHP(PHP: Hypertext Preprocesso...
    99+
    2024-04-02
  • php是什么意思啊
    php是指一种通用开源脚本语言,中文名为超文本预处理器,它吸收了C语言、Java和Perl的特点,几乎支持所有流行的数据库以及操作系统,具有成本低、速度快、可移植性好、内置丰富的函数库等优点,它主要适用于Web开发领域,也可以用于开发API...
    99+
    2024-04-02
  • php bom是什么意思
    php bom是用来判断文本文件是哪一种Unicode编码的标记;在utf-8编码文件中,BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。本教程操作环境:Windows10系统、PHP8.1版、DELL G3电脑php b...
    99+
    2023-05-14
    php bom
  • php mail是什么意思
    php mail是php邮件的意思,在php中是指mail()函数,该函数用于从脚本中发送电子邮件;其使用语法是“mail(to,subject,message,headers,parameters)”;php运行邮件函数需要一个已安装且正...
    99+
    2023-05-14
    mail php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作