如何制作 PHP SOAP 客户端并将结果 xml 存储在 php 变量中

2024-03-01

我正在使用 PHP,以前从未使用过 SOAP 和 PHP。

我需要建立Soap PHP 客户端它正在调用并从 a 检索信息Soap 服务器 .NET Web 服务.

我目前正在努力获取信息荷兰医疗保健系统的医生.对于在荷兰医疗保健系统中注册的每位医生,您可以检索 他的信息通过他独特的唯一的 BIG ID - 11 位唯一号码)从一个使用 WSDL 的 SOAP Web 服务.

所以当我打电话时SOAP服务器: (服务器链接如下)

进入这个测试网站(如soapclient.com)

my XML 响应是正确的并且看起来与下面的 XML 完全相同括号中是我想在 php 中捕获的医生信息。

<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>
 <ListHcpApprox3Result xmlns="http://services.cibg.nl/ExternalUser">
  <ListHcpApprox>
   <ListHcpApprox3>
    <HcpNumber>200822</HcpNumber>
    <BirthSurname> [Surname of the Doctor]</BirthSurname>
    <MailingName> [Mailing name of the doctor] </MailingName>
    <Initial> [Initials of the doctor] </Initial>
    <Gender> [Gender of the doctor] </Gender>
    <ArticleRegistration>
    <ArticleRegistrationExtApp>
    <ArticleRegistrationNumber> [unique BIG ID]  </ArticleRegistrationNumber>
    <StartDate>1998-12-10T00:00:00</StartDate>
    <EndDate xsi:nil="true"/>
    <TypeOfSpecialismId>15</TypeOfSpecialismId>
    </SpecialismExtApp>
    </Specialism>
    <Mention/>
    <JudgmentProvision/>
    <Limitation/>
   </ListHcpApprox3>
  </ListHcpApprox>
 </ListHcpApprox3Result>
</soap:Body>
</soap:Envelope>

我需要构建一个 PHP 网页,它将执行完全相同的 SOAP 调用。

wsdl文件的地址是这样的:

webservices.cibg.nl/Ribiz/OpenbaarV2.asmx?wsdl.asmx?wsdl

肥皂服务器地址是这样的: http://webservices-acc.cibg.nl/Ribiz/OpenbaarV2.asmx http://webservices-acc.cibg.nl/Ribiz/OpenbaarV2.asmx

肥皂的动作是这样的: http://services.cibg.nl/ExternalUser/ListHcpApprox3 http://services.cibg.nl/ExternalUser/ListHcpApprox3

我发送的 SOAP 消息是这样的:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
 <listHcpApproxRequest xmlns="http://services.cibg.nl/ExternalUser">
  <WebSite>Ribiz</WebSite>
  <RegistrationNumber> [BIG ID number of the doctor] </RegistrationNumber>
 </listHcpApproxRequest>
</soap:Body>
</soap:Envelope>

(括号中是我们在 SOAP 服务器中发送的医生的 BIG ID 号)

如何将上述 SOAP 操作写入 PHP 代码并在 PHP 中存储我作为响应获得的 XML 变量?

我需要在 php 代码中存储的 XML 响应中的变量是这些......

<HcpNumber>200822</HcpNumber>
<BirthSurname> [Surname of the Doctor]</BirthSurname>
<MailingName> [Mailing name of the doctor] </MailingName>
<Initial> [Initials of the doctor] </Initial>
<Gender> [Gender of the doctor] </Gender> 

Update1: 这是 var_dump 的输出。其中 xxxxxxx 是我想要存储在 php 变量中的值!

object(stdClass)[2]
  public 'ListHcpApprox' => 
    object(stdClass)[3]
      public 'ListHcpApprox3' => 
        object(stdClass)[4]
          public 'HcpNumber' => string 'xxxxxxxxx' (length=6)
          public 'BirthSurname' => string 'xxxxxxxxxxx' (length=9)
          public 'MailingName' => string 'xxxxxxxxxxxxxxxxxx' (length=18)
          public 'Initial' => string 'xxxxxxxxxxxx' (length=8)
          public 'Gender' => string 'x' (length=1)
          public 'ArticleRegistration' => 
            object(stdClass)[5]
              ...
          public 'Specialism' => 
            object(stdClass)[7]
              ...
          public 'Mention' => 
            object(stdClass)[9]
              ...
          public 'JudgmentProvision' => 
            object(stdClass)[10]
              ...
          public 'Limitation' => 
            object(stdClass)[11]
              ...

PHP 有一个原生的肥皂客户端 http://php.net/manual/en/class.soapclient.php类,可以轻松调用 SOAP 服务。它提供了一个简单的接口,允许您使用本机 PHP 数组和对象来获取请求和响应数据,并处理 SOAP 信封和 WSDL 的复杂性。

// create a new SoapClient and pass it the WSDL
$client = new SoapClient('http://webservices.cibg.nl/Ribiz/OpenbaarV2.asmx?WSDL');

// define the input parameters for the webservice call
$params = array('WebSite' => 'Ribiz', 'RegistrationNumber' => 'xxxxxxxxxx');
// invoke the ListHcpApprox3 method
$response = $client->ListHcpApprox3($params);

// print out the response to see its structure
var_dump($response);

您可以像这样从响应中选择变量:

$data = $response->ListHcpApprox->ListHcpApprox3
$HcpNumber = $data->HcpNumber;
$BirthSurname = $data->BirthSurname;

echo $HcpNumber;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何制作 PHP SOAP 客户端并将结果 xml 存储在 php 变量中 的相关文章

  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 使用 PHP/linux 将文件合并为单个 PDF

    我正在研究如何将多个 PDF 合并为一个 PDF 我正在寻找一个图书馆可靠且坚固尽可能 最好有一个库可以保留书签 鬼脚本 http pages cs wisc edu ghost 可以在保存书签的位置进行连接 但我遇到了麻烦 在一种情况下它
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 分页显示所有其他页面上第 1 页的相同帖子

    我最近在创建即将发生的事件列表时得到了很多帮助 请参阅此处显示即将举行的活动 包括今天的活动 https stackoverflow com questions 17343615 showing upcoming events includ
  • WCF 服务引用从 WSDL 生成 void 方法

    这是我第一次尝试使用 WCF 所以我猜我做错了什么 我正在尝试访问 WSDL 定义的肥皂服务http confluence atlassian com rpc soap axis confluenceservice v1 wsdl http
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa

随机推荐

  • 如何删除添加到列表中的最后一个元素?

    我在 C 中有一个列表 我在其中添加列表字段 现在 在添加时我必须检查条件 如果条件满足 那么我需要删除从列表中添加的最后一行 这是我的示例代码 List lt gt rows new List lt gt foreach User use
  • 如何使用 php / symfony 进行 Windows 身份验证

    我在 Symfony 应用程序 Intranet 上工作 我听说可以使用身份验证窗口 而不必使用传统的身份验证窗口登录 有人可以给我 1 或 2 个有关该主题的链接地址吗 我自己搜索过 但找不到合适的关键词 他是WSSE吗 先感谢您 如果您
  • MFC中Tree(CTreeCtrl)中添加特定树项的图标

    我们可以为特定的树项目添加图标吗 我使用以下功能添加带有图标的项目 HTREEITEM InsertItem LPCTSTR lpszItem int nImage int nSelectedImage HTREEITEM hParent
  • 海龟图形 - 如何控制窗口何时关闭?

    我有一个小的 python 脚本 可以绘制一些海龟图形 当我的脚本运行完毕后 海龟屏幕会自动关闭 因此为了能够暂时看到图形 我必须使用time sleep 5 在脚本末尾以延迟关闭 有什么方法可以使其更加动态 即告诉 python 我想自己
  • Vba Excel从关闭的文件中进行vlookup

    我想从关闭文件到活动打开文件进行 vlookup 关闭文件的路径将作为变体给出 可以说mypath C list 我不知道是只设置路径更好还是设置完整路径 路径 文件名 你能帮忙吗 您将需要完整路径 Example Option Expli
  • 使用 SAN 证书时公用名称无效

    我已经为内部服务器生成了一个证书 该证书也可以从外部访问 根据this https stackoverflow com a 5937270 918406所以回答 CN 和 SAN 字段相互补充 因此我将 CN 设置为 server doma
  • 带 MVC 的 PHP 前端控制器

    我正在尝试通过前端控制器设计深入研究 MVC 我想通过使用一行来调用我的整个应用程序 例如在index php中 require once myclass php output new myClass 我很想摆脱 require once
  • Zend Form:如何让它屈服于我的意志?

    我已经多次阅读该手册 我搜索了谷歌提供的有关该主题的帖子 我什至买了几本有关采埃孚的书籍 现在 为什么我还是一头雾水 我可以使用 Zend Form 制作一个可以正常验证和运行的表单 我不能做的是制作一个看起来与我希望的完全一样的表单 并带
  • 搜索部分类名,返回完整类名

    想象一下这个 页面 A 包含此内容body div class overlay homepage span span div B页包含 div class overlay results span span div 我可以使用此脚本来识别它
  • 位置:固定和宽度:继承百分比父级

    我想给一个fixed元素awidth百分比父母 这里 container 当我使用像素而不是百分比时 它就起作用了 我该怎么做 这可能吗 CSS HTML div div div Sitename div div div CSS outer
  • 可以省略不必要的启动图像吗?

    我有一个仅支持运行 iOS 10 或更高版本的 iPhone 的应用程序 我只添加了以下图像 电子邮件受保护 cdn cgi l email protection 电子邮件受保护 cdn cgi l email protection 电子邮
  • JUnit 测试 if else case

    如何将测试写入当前方法 我使用 jUnit 4 public void setImage if conditionOne myView setImageOne else myView setImageTwo 好的 您编写此方法的方式存在缺陷
  • 忽略排队的鼠标事件

    我有一个用 C 编写的针对 NET Compact Framework 3 5 的应用程序 在 Windows CE 上运行 有时 会在 UI 线程上执行持续一秒左右的操作 我目前设置的是Cursor Current属性来指示应用程序正忙
  • 在 Windows 命令终端中启动 R

    我不知道如何在 Windows 命令终端中启动 R 我跑cmd键入后打开命令提示符R rcmd start R并尝试我发现的其他可能性 但我有一个错误 R is not recognized as an internal or extern
  • 架构arm64解析的未定义符号

    我正在尝试在我的应用程序中实现解析 这里的问题是我收到这些奇怪的错误 我不知道它们的含义 我尝试过 1 更改架构 但最新版本的Xcode不允许我设置自己的架构 例如arm64 2 我尝试删除可能有冲突的 SDK Dropbox 3 我已经链
  • 有选择地恢复或签出 Git 中文件的更改?

    是否有命令允许您部分撤消对工作目录中一个或多个文件的更改 假设您对一个文件进行了多次编辑 但您意识到想要将某些更改撤消回已提交状态 但不想将其他更改撤消 我正在设想一个选项git checkout这很像git add p 即它会逐个检查文件
  • 从 pandas 数据帧的列中提取主题标签

    我有一个数据框df 我想从 Max 45 的推文中提取主题标签 Max Tweets 42 via VIE unlike at fashion 42 Ny trailer katamaritribute ps3 45 Saved a bab
  • 检查路径是否会因 open_basedir 而失败

    是否可以在失败之前检查一下 if is in open basedir path 您可以使用ini get http php net manual en function ini get php获取 open basedir 的当前值以检查
  • 仅当表中尚不存在记录时插入记录

    我想知道是否有办法仅在表尚未包含该记录时才将记录插入表中 是否有一个查询可以执行此操作 或者我需要一个存储过程 你没有说 SQL Server 是什么版本 如果 SQL Server 2008 你可以使用MERGE http technet
  • 如何制作 PHP SOAP 客户端并将结果 xml 存储在 php 变量中

    我正在使用 PHP 以前从未使用过 SOAP 和 PHP 我需要建立Soap PHP 客户端它正在调用并从 a 检索信息Soap 服务器 NET Web 服务 我目前正在努力获取信息荷兰医疗保健系统的医生 对于在荷兰医疗保健系统中注册的每位