<bdo id='1GIXI'></bdo><ul id='1GIXI'></ul>
      1. <i id='1GIXI'><tr id='1GIXI'><dt id='1GIXI'><q id='1GIXI'><span id='1GIXI'><b id='1GIXI'><form id='1GIXI'><ins id='1GIXI'></ins><ul id='1GIXI'></ul><sub id='1GIXI'></sub></form><legend id='1GIXI'></legend><bdo id='1GIXI'><pre id='1GIXI'><center id='1GIXI'></center></pre></bdo></b><th id='1GIXI'></th></span></q></dt></tr></i><div id='1GIXI'><tfoot id='1GIXI'></tfoot><dl id='1GIXI'><fieldset id='1GIXI'></fieldset></dl></div>

        <legend id='1GIXI'><style id='1GIXI'><dir id='1GIXI'><q id='1GIXI'></q></dir></style></legend>

        <small id='1GIXI'></small><noframes id='1GIXI'>

      2. <tfoot id='1GIXI'></tfoot>

        更改 php 中的soap前缀

        时间:2023-05-22

      3. <legend id='qTvSJ'><style id='qTvSJ'><dir id='qTvSJ'><q id='qTvSJ'></q></dir></style></legend>

        <small id='qTvSJ'></small><noframes id='qTvSJ'>

          <tbody id='qTvSJ'></tbody>
              <bdo id='qTvSJ'></bdo><ul id='qTvSJ'></ul>
              <tfoot id='qTvSJ'></tfoot>

              <i id='qTvSJ'><tr id='qTvSJ'><dt id='qTvSJ'><q id='qTvSJ'><span id='qTvSJ'><b id='qTvSJ'><form id='qTvSJ'><ins id='qTvSJ'></ins><ul id='qTvSJ'></ul><sub id='qTvSJ'></sub></form><legend id='qTvSJ'></legend><bdo id='qTvSJ'><pre id='qTvSJ'><center id='qTvSJ'></center></pre></bdo></b><th id='qTvSJ'></th></span></q></dt></tr></i><div id='qTvSJ'><tfoot id='qTvSJ'></tfoot><dl id='qTvSJ'><fieldset id='qTvSJ'></fieldset></dl></div>

                1. 本文介绍了更改 php 中的soap前缀的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我正在将一个肥皂网络服务从 .net 重写为 php.默认情况下,php 给我的标签如下所示:

                  i'm rewriting a soap web service from .net to php. by default, php is giving me tags that look like this:

                  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/"><SOAP-ENV:Header><ns1:FindAllCategories/></SOAP-ENV:Header><SOAP-ENV:Body><ns1:FindAllCategoriesResponse><ns1:FindAllCategoriesResult><ns1:ArtistCategoryDto>
                  

                  等等...

                  但我需要这个:

                  <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><FindAllCategoriesResponse xmlns="http://tempuri.org/"><FindAllCategoriesResult><ArtistCategoryDto>
                  

                  这类似于这里的问题:PHP AND SOAP.改变信封 但是我不想像他那样破解它.此外,我正在创建一个将由现有 iphone 应用程序使用的肥皂服务,而不是使用 PHP 来使用 SoapClient 使用肥皂服务.iphone 应用程序只是解析原始 xml,我现在无法更改 iphone 应用程序.

                  This is similar to the question here: PHP AND SOAP. Change envelope however i'd like to not hack it the way he did. Also, i am creating a soap service that will be consumed by an existing iphone app, not using PHP to consume a soap service using SoapClient. The iphone app just parses the raw xml and i can't change the iphone app right now.

                  推荐答案

                  在重新阅读您想要的内容并搜索 php 文档后,这里是我的解决方案和我所做的一些假设

                  After re-reading what it is you want and searching through the php documentation here is my solution and a couple of assumptions that I made

                  假设

                  • 如果我是对的,您知道 SOAP 前缀本身不是问题(只要前缀一致,您就可以使用任何前缀).
                  • 我们需要为这个特定的 Iphone 应用创建一个变通方法,该应用使用当前无法由您修改/升级的 (xml) 解析器

                  你想要什么?

                  1. 您想使用本机 API 来更改 SOAP 前缀
                  2. 您想捕获 SoapServer 响应,以便在返回之前更改 SOAP 前缀

                  解决方案

                  1. 目前没有本地 SoapServer API 方法来改变 SOAP 前缀
                  2. 您可以捕获 SoapServer 响应并通过正则表达式或 xml 解析器处理响应,请参见下面的示例

                  <?php
                  
                  // Create you parse function - Regex
                  function SoapServerRegexParser($input)
                  {
                      // $input contains your XML Response
                      // Do str_replace or preg_replace   
                      $request = preg_replace({do replace});
                  
                      //return modified output to client
                      return $request;
                  }
                  
                  // OR create you parse function - Regex XML Parser
                  function SoapServerXMLParser($input)
                  {
                      // $input contains your XML Response
                      // Use any xml parser that you would like   
                      $xml = new DOMDocument();
                      $xml->formatOutput = true;
                      $xml->preserveWhiteSpace = false;
                      $xml->loadXML($input);
                      //Do replacement have a looke at: DOMNode::replaceChild
                  
                      //return modified output to client
                      return $xml->saveXML();
                  }
                  
                  // Make php buffer all output
                  // Send all output to a callBack function
                  
                  // Replace 'SoapServerRegexParser' with the callback function name of choice
                  ob_start('SoapServerRegexParser'); //buffer output and set callback function
                  
                  // Create SoapServer
                  $server = new SoapServer('wsdlfile.wsdl');
                  $server->handle(); //Handle incoming request
                  ob_end_flush(); //Release buffer, but send through callback function first
                  
                  ?>
                  

                  这应该可以解决问题,我还没有创建正则表达式部分或实际的 xlm 节点替换,但我认为你可以自己做

                  This should do the trick, I haven't created the regex part or the actual xlm node replacement but I figure you can do that yourself

                  这篇关于更改 php 中的soap前缀的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:尝试使用 PHP 中的 API 在 Dynamics CRM 中创建潜在客 下一篇:内容类型 'text/xml;charset=utf-8' 不是预期的类

                  相关文章

                  最新文章

                  <i id='qrSQx'><tr id='qrSQx'><dt id='qrSQx'><q id='qrSQx'><span id='qrSQx'><b id='qrSQx'><form id='qrSQx'><ins id='qrSQx'></ins><ul id='qrSQx'></ul><sub id='qrSQx'></sub></form><legend id='qrSQx'></legend><bdo id='qrSQx'><pre id='qrSQx'><center id='qrSQx'></center></pre></bdo></b><th id='qrSQx'></th></span></q></dt></tr></i><div id='qrSQx'><tfoot id='qrSQx'></tfoot><dl id='qrSQx'><fieldset id='qrSQx'></fieldset></dl></div>

                  1. <tfoot id='qrSQx'></tfoot>
                    <legend id='qrSQx'><style id='qrSQx'><dir id='qrSQx'><q id='qrSQx'></q></dir></style></legend>

                        <bdo id='qrSQx'></bdo><ul id='qrSQx'></ul>

                      <small id='qrSQx'></small><noframes id='qrSQx'>