Print gif from variable with php

I am experimenting with the Endicia label server. The sample code below allows me to get the USPS tag from my test server. How to display the returned image. Right now, the print_r function (if not to comment) displays the contents of an array of what the image seems to be.

<?php

$strGetLabelURL = "https://www.envmgr.com/LabelService/EwsLabelService.asmx/GetPostageLabelXML";

$request = '<LabelRequest ImageFormat="GIF" Test="YES">
     <RequesterID>abcd</RequesterID>
     <AccountID>123456</AccountID>
     <PassPhrase>samplePassPhrase</PassPhrase>
     <MailClass>FIRST</MailClass>
     <DateAdvance>0</DateAdvance>
     <WeightOz>1</WeightOz>
     <Stealth>FALSE</Stealth>
     <Services InsuredMail="OFF" SignatureConfirmation="OFF" />
     <Value>0</Value>
     <Description>Sample Label</Description>
     <PartnerCustomerID>12345ABCD</PartnerCustomerID>
     <PartnerTransactionID>6789EFGH</PartnerTransactionID>
     <ToName>Ben Franklin</ToName>
     <ToCompany>United States Postal Service</ToCompany>
     <ToAddress1>12345 Main Street</ToAddress1>
     <ToCity>Camas</ToCity>
     <ToState>WA</ToState>
     <ToPostalCode>98607</ToPostalCode>
     <ToPhone>2025551212</ToPhone>
     <FromName>Technical Support</FromName>
     <FromCompany>DYMO Endicia</FromCompany>
     <ReturnAddress1>385 Sherman Ave.</ReturnAddress1>
     <FromCity>Palo Alto</FromCity>
     <FromState>CA</FromState>
     <FromPostalCode>94306</FromPostalCode>
     <FromZIP4>1864</FromZIP4>
     <FromPhone>8005763279</FromPhone>
     </LabelRequest>';

 $params = array('http' => array(
     'method' => 'POST',
     'content' => 'labelRequestXML='.$request,
     'header' => 'Content-Type: application/x-www-form-urlencoded'));

 $ctx = stream_context_create($params);
 $fp = fopen($strGetLabelURL, 'rb', false, $ctx);

 if (!$fp) 
 {
     print "Problem with $strGetLabelURL";
 }

 $response = stream_get_contents($fp);

 if ($response === false) 
 {
     print "Problem reading data from $url, $php_errormsg";
 }

 print_r($response);
?>
+5
source share
2 answers

You need to load the XML, extract the image data, and then put it in the image:

$sxml = Simplexml_load_string( $response );
echo '<img src="data:image/gif;base64,' . $sxml->Base64LabelImage . '">';
+7
source

Endicia, , . XML , GIF. , <LabelImage> - . , , :

echo '<img src="data:image/gif;base64,' . $value . '" alt="" />';

+2

All Articles