搜索
首页后端开发php教程应用NuSoap构建新型的基于PHP的Web服务_PHP

SOA

许多机构已经采用了Apach和PHP作为他们的Web应用环境。在Web services模式中采用PHP可能看上去可能会比较难。但是事实上,搭配NuSoap,你可以轻松的应用PHP构建SOAP的客户端和服务器端。

一个例子便能说明一切,让我们先看一个例子

为了说明如何应用NuSoap和PHP来构建Web services,我们将举一个简单的例子。这个例子应用程序由一个PHP Web services的服务器端和客户端组成。他将实现两个功能:颠倒一个字符串字符的顺序,求两个数的和。

PHP SOAP服务器
用PHP和NuSoap来建立SOAP服务器非常容易。基本上,你只要写出你想要暴露给你的Web services的函数,然后用NuSoap去注册它们就可以了。

OK,另外还需要两步才能完成PHP SOAP服务器的建立。首先你还要在你的PHP代码中创建NuSoap对象的一个实例,然后用HTTP POST方法将原始数据传给NuSoap进行处理。听起来简单吧。先看看清单1。

清单1:soapfunc.php

require_once('nusoap.php');
function reverse($str){
  $retval = "";
   if(strlen($str)     return new soap_fault('Client',','Invalid string');
   }
   for ($i = 1; $i       $retval .= $str[(strlen($str) - $i)];
   }
  return $retval;
}

function add2numbers($num1, $num2) {
   if (trim($num1) != intval($num1)) {
      return new soap_fault('Client', ', 'The   first number is invalid');
  }
  if (trim($num2) != intval($num2)) {
    return new soap_fault('Client', ', 'The second number is invalid');
  }
  return ($num1 + $num2);
}
?>

清单1给出了soapfunc.php的源文件。这个文件包含了我们想通过SOAP协议暴露给Web services的两个函数:reverse和add2numbers,它们是我们这个Web services 应用的核心。函数reverse带一个参数,颠倒字符串中的字符的顺序,然后返回。

清单2:soapserver.php

require_once('nusoap.php');
include('soapfunc.php');
$soap = new soap_server;
$soap->register('reverse');
$soap->register('add2numbers');
$soap->service($HTTP_RAW_POST_DATA);
?>

清单2举例说明了NuSoap注册函数和调用SOAP处理程序的用法。你看到了,注册你的两个函数(在soapfunc.php中)、传递POST数据给soap_server对象,就跟创建一个新的soap_server对象实例一样的简单。soap_server对象将要检查POST数据并确定将调用哪个函数,然后向这个PHP函数传递参数。从PHP函数返回的数据被重新包装为SOAP响应并传送给请求服务的SOAP客户端。

PHP SOAP客户端
现在我们已经利用NuSoap和PHP创建了一个SOAP服务器,我们需要对它进行测试。像我们建立SOAP服务器程序一样,我们可以在PHP中利用NuSoap再建立一个SOAP的客户端程序。清单3给出了PHP SOAP客户端程序的源程序。

现在我们已经利用NuSoap和PHP创建了一个SOAP服务器,我们需要对它进行测试。像我们建立SOAP服务器程序一样,我们可以在PHP中利用NuSoap再建立一个SOAP的客户端程序。清单3给出了PHP SOAP客户端程序的源程序。

清单3:soapclient.php

include('nusoap.php');
$client = new soapclient('http://localhost/soapserver.php');

$str = "This string will be reversed";
$params1 = array('str'=>$str);
$reversed = $client->call('reverse',$params1);
echo "If you reverse '$str', you get '$reversed'
\n";

$n1 = 5;
$n2 = 14;
$params2 = array('num1'=>$n1, 'num2'=>$n2);
$added = $client->call('add2numbers', $params2);
echo "If you add $n1 and $n2 you get $added
\n";
?>



为了在一个SOAP服务器上能使用PHP客户端程序,你还得做三件事情。第一,你要创建一个soapclient对象。soapclient对象负责处理参数的编组和SOAP协议。soapclient需要一个必须是URL的参数。这个URL可以指向一个实际SOAP服务器的HTTP终端或者一个WSDL描述。在我们这个例子里,它是指向我们的PHP SOAP服务器的一个URL。

当调用需要参数的函数时,你需要先创建一个参数数组,数组包括一组键-值(key-value)对。键(key)是参数的名字,值(value)是参数的值。

当需要调用函数时,你就用soapclient对象去调用,并且传入两个参数。第一个参数是你要调用的函数的名字,第二个参数是包含SOAP函数所带参数的一个数组,主调函数将会返回你调用的SOAP函数的值。

要运行这个例子,只要简单的在Web浏览器中输入soapclient.php的URL。你将类似以下的输出:

If you reverse 'This string will be reversed', you get 'desrever eb lliw gnirts sihT' If you add 5 and 14 you get 19 
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何解决Windows中的“服务没有响应”错误。如何解决Windows中的“服务没有响应”错误。Apr 27, 2023 am 08:16 AM

NETSTART命令是Windows中的内置命令,可用于启动和停止服务和其他程序。有时,在运行此命令时,您可能会遇到NetHelpmsg2186错误。遇到此错误的大多数用户都试图通过运行NETSTARTWUAUSERV命令来重新启动Windows更新服务。如果Windows更新服务已禁用或未运行,则您的系统可能会面临风险,因为您无法获取最新更新。让我们详细探讨为什么会发生此错误以及如何绕过它。好吗?什么是错误2186?Windows更新服务通过安装最新的关键更新和安全功

win10安全中心服务被禁用解决方案win10安全中心服务被禁用解决方案Jul 16, 2023 pm 01:17 PM

安全中心服务是win10系统内置的电脑防护作用,能够实时保护电脑安全,可是有些客户在开机的时候碰见了安全中心服务被禁用的状况,怎么办呢?很简单,你可以打开服务面板,找到SecurityCenter项,以后右键打开它的属性窗口,将启动种类设定为自动,以后再点击一下启动就能够再次开启这个服务了。win10安全中心服务被禁用怎么办:1、按“Win+R”开启“运作”窗口。2、随后输入“services.msc”指令后按回车3、随后在右边窗口中找到“SecurityCenter”一项,双击此项开启其属性窗

远程桌面连接服务用命令打开方法远程桌面连接服务用命令打开方法Dec 31, 2023 am 10:38 AM

远程桌面连接给很多用户的日常生活带来了方便,也有部分想使用命令来进行远程连接,操作起来更方便,那么该怎么连接呢?远程桌面连接服务用命令打开方法可以帮你解决。远程桌面连接命令怎么设置:方法一、通过运行命令远程连接1、按下“Win+R”打开“运行”输入mstsc2、然后点击“显示选项”3、输入ip地址点击“连接”。4、显示正在连接即可。方法二、通过命令提示符远程连接1、按下“Win+R”打开“运行”输入cmd2、在“命令提示符”输入mstsc/v:192.168.1.250/console

启用win7音频服务的方法启用win7音频服务的方法Jul 10, 2023 pm 05:13 PM

计算机有许多系统服务来支持各种程序的应用。如果电脑没有声音,在排除硬件问题的情况下,大部分音频服务都没有打开,那么win7如何启用音频服务呢?许多朋友比较模糊,所以针对如何启用win7音频服务的问题,下面小编介绍win7音频服务的启用方法。启用win7音频服务的方法。1.在Windows7系统下的计算机桌面上找到计算机,右键选择管理选项。2.在打开的计算机管理界面中找到并打开服务和应用下的服务项目。在右边的服务界面上找到WindowsAudio双击打开修改。4.切换到常规项目,点击启动开启功能。

Linux 重启服务的正确方式是什么?Linux 重启服务的正确方式是什么?Mar 15, 2024 am 09:09 AM

Linux重启服务的正确方式是什么?在使用Linux系统时,经常会遇到需要重启某个服务的情况,但是有时候我们可能会在重启服务时遇到一些问题,比如服务没有真正停止或启动等情况。因此,掌握正确的重启服务的方式是非常重要的。在Linux中,通常可以使用systemctl命令来管理系统服务。systemctl命令是systemd系统管理器的一部分

验证码拦不住机器人了!谷歌AI已能精准识别模糊文字,GPT-4则装瞎求人帮忙验证码拦不住机器人了!谷歌AI已能精准识别模糊文字,GPT-4则装瞎求人帮忙Apr 12, 2023 am 09:46 AM

“最烦登网站时各种奇奇怪怪(甚至变态)的验证码了。”现在,有一个好消息和一个坏消息。好消息就是:AI可以帮你代劳这件事了。不信你瞧,以下是三张识别难度依次递增的真实案例:而这些是一个名为“Pix2Struct”的模型给出的答案:全部准确无误、一字不差有没有?有网友感叹:确定,准确性比我强。所以可不可以做成浏览器插件??不错,有人表示:别看这几个案例相比还算简单,但凡微调一下,我都不敢想象其效果有多厉害了。所以,坏消息就是——验证码马上就要拦不住机器人了!(危险危险危险……)如何做到?Pix2St

Ubuntu PHP服务无法正常启动的解决办法Ubuntu PHP服务无法正常启动的解决办法Feb 28, 2024 am 10:48 AM

标题:解决Ubuntu下PHP服务无法正常启动的方法及具体代码示例在使用Ubuntu搭建网站或应用程序时,经常会遇到PHP服务无法正常启动的问题,这会导致网站无法正常访问或应用程序无法正常运行。本文将介绍如何解决Ubuntu下PHP服务无法正常启动的问题,同时提供具体的代码示例帮助读者快速解决此类故障。一、检查PHP配置文件首先,我们需要检查PHP的配置文件

如何在 Linux 中执行服务重启命令?如何在 Linux 中执行服务重启命令?Mar 14, 2024 am 11:06 AM

在Linux中,要执行服务重启命令通常需要使用Systemd服务管理器。Systemd是Linux上广泛使用的服务管理工具,可以方便地管理和控制系统服务。下面将介绍如何在Linux中通过Systemd执行服务重启命令,并提供具体的代码示例。步骤一:确认服务名称在执行服务重启命令之前,首先需要确认要重启的服务名称。可以通过以下命令查看系统中正在运行的服务列表:

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),