php

2011-08-30 10 views
5

के साथ एक चर से एक gif प्रिंटिंग मैं एंडिसिया शिपिंग लेबल सर्वर के साथ प्रयोग कर रहा हूँ। नीचे नमूना कोड मुझे अपने परीक्षण सर्वर से यूएसपीएस लेबल प्राप्त करने की अनुमति देता है। मैं वापस आने वाली छवि को कैसे प्रदर्शित करूं। अभी print_r फ़ंक्शन (यदि अन-टिप्पणी की गई है) छवि के रूप में दिखाई देने वाली सरणी सामग्री को प्रिंट करता है।php

<?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); 
?> 
+0

$ प्रतिक्रिया की सामग्री क्या है? – xdazz

+0

क्या छवि का ब्लॉब एक ​​सरणी तत्व है? – alex

उत्तर

7

आप एक्सएमएल लोड करने के लिए, छवि डेटा निकालने, तो में रख दिया है एक छवि:

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

बहुत बढ़िया ... धन्यवाद। मैंने चेतावनियों को दबाने के लिए अतिरिक्त विकल्प जोड़े ... Simplexml_load_string ($ प्रतिक्रिया, NULL, LIBXML_NOWARNING); और यह बहुत अच्छा काम करता है। धन्यवाद। – RThomas

2

मुझे एंडिसिया समाधान के बारे में पता नहीं है लेकिन मुझे लगता है कि यह यूपीएस के समान है। आपके द्वारा भेजे गए एक्सएमएल से कोई देख सकता है कि आप जीआईएफ प्रारूप में लेबल के लिए पूछते हैं। मुझे लगता है कि प्रतिक्रिया में आपके पास <LabelImage> या कुछ समान नामक तत्व है। आप मूल्य खोलने और बंद करने टैग के बीच है कि निकालने और इसे अपने ब्राउज़र पर मुद्रित करने के लिए नीचे दिए गए उपयोग करने की आवश्यकता:

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

संबंधित मुद्दे