在base64二进制数据多个文件中编码的Soap消息

在base64二进制数据多个文件中编码的Soap消息,soap,binary,base64,rfc,Soap,Binary,Base64,Rfc,最近,我得到了一个新项目来处理SOAP服务,并获取消息并将其发布到基于xml的ASP.NET服务。 问题是我成功地发出了soap请求并获得了消息。 消息如下所示: UEsDBBQAAAAIAAdUe06+NXE0kR4AADLSAQALAAAAUHJvZHVzZS54bWzUXW1z48YN5k/h5EMnmbMsvomSpmkzFCXbjERJoSTb52/p9dq5mbxN2svczy/........ 消息在RFC4648上是Base64二进制的,上面有多个xml文档。 如何从php中的

最近,我得到了一个新项目来处理SOAP服务,并获取消息并将其发布到基于xml的ASP.NET服务。 问题是我成功地发出了soap请求并获得了消息。 消息如下所示:

UEsDBBQAAAAIAAdUe06+NXE0kR4AADLSAQALAAAAUHJvZHVzZS54bWzUXW1z48YN5k/h5EMnmbMsvomSpmkzFCXbjERJoSTb52/p9dq5mbxN2svczy/........
消息在RFC4648上是Base64二进制的,上面有多个xml文档。 如何从php中的代码构造此文档? 此请求中加密的文档是3个xml文件。 我设法从一个名为freeformatter的在线解密程序中获得它们,该程序具有下载功能。 如果我尝试解码结果,我会得到如下结果:

PKT{N�5q4�2�Produse.xml�]ms��
�O��C'��,����i3%یDI�$��o��ڹ��M����/�,��|vL�O�$�/�xv,,�u�s>9?;?....
有解决办法吗?
我对肥皂不太熟悉,所以我不太了解它。

谢谢你,但我想解决它。 我将在这里发布解决方案,以便所有面临相同问题的人都能得到回应。 当您有一个base64二进制字符串中的.zip文件时,需要做的第一件事是捕获对txt文件的响应。 假设来自soap的响应称为“$response”,我们需要将其捕获到一个文件中。我们喜欢这样:
$response=$client->\u getLastResponse();
$fille=“response.xml”;
填充内容($fille,$response)

现在我们得到了对xml文件的响应。 接下来要做的事情是从xml值获取响应。 假设我们的值是

`$b64 = "b64.txt";
 $dom = new DomDocument();
 $dom = load("response.xml");
 $data = $dom->getElementByTagName("ResponseFromServer");
 $catchb64 = $data;
 fille_put_content($b64,$catchb64);`
现在我们在一个fille中得到了干净的Base64二进制字符串。 接下来我们需要创建文档(在本例中是.zip文件)

我们不需要
ZipArchive()
函数,因为它是一个zip归档文件,我们需要做的就是创建一个空文档,然后将二进制数据发送给它。
祝你好运

您的问题与
SOAP
本身无关。Base64是一种二进制编码。如果你把它解码成二进制文件(11010110 11010001..),你仍然可以得到二进制文件。这些二进制文件可以是文件或其他东西。您应该问问自己,对于通过流或其他方式从硬盘读取的文件,您会做些什么,从而获得一些二进制数组。如果你想建立一个SOAP客户端,我们需要你想如何建立的更多信息。。
`$input_fille = "response.txt"; // the fille with clean base64 binary data on it
 $output_fille = "result.zip"; //the fille we need to create on system with the 
 documents decrypted
 $content = fille_get_contents($input_fille); // Reading the content of input fille
 $binary = base64_decode($content); // Decoding to binary
 fille_put_contents($output_fille,$binary); // Writing to fille the vallues`