PHP如何从二进制数据显示文件

时间:2019-06-23 12:25:10

标签: php web-services

我具有运行Web服务并带给我二进制文件的功能:

$params->xmlRequest = $paramsStr;

$result = $s->__call("SubmitXmlString",array($params));

$obj_pros = get_object_vars($result);
$xml =  $obj_pros['SubmitXmlStringResult']; 
$xml = simplexml_load_string($xml); 

return ($xml);  

响应示例:

<PnrGetReportDoc ReportName="ExternalDocument">
    <Report ID="6214" Type="pdf" Name="file name" IsCompressed="1">
        <![CDATA[JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAQolJU......................VPRg==]]>
        </Report>
    <ReportImages>
</ReportImages>
</PnrGetReportDoc>

我想回显内容以便显示文件

我试图回显二进制文件,但是: 1. PDF不显示

  1. 二进制字符开头没有开头的注释:<![CDATA[

这是我试图显示文件的php文件:

header('Content-type: application/'pdf);
$fileData = get_file_data ($_GET['fileID']);

echo $fileData->Report;

1 个答案:

答案 0 :(得分:1)

那不是不是二进制文件。准确地说,XML以纯文本数据格式而闻名。

从您共享的样本数据中,我可以想象它是Base64,这是一种将二进制数据编码为纯文本的流行算法。 PHP有一个native function to decode it