Bir API tarafından döndürülen bir URL'den bir görüntü gösteriliyor

3 Cevap php

Ben aşağıdaki gibi bir şey dönmesi gereken bir API çağrısı yapıyorum,

<?xml version="1.0" encoding="utf-8" ?> 
<Chart:chart xmlns:Chart="http://www.zillow.com/vstatic/3/static/xsd/Chart.xsd">
    <request>
        <zpid>48749425</zpid> 
        <unit-type>percent</unit-type> 
        <width>300</width> 
        <height>150</height> 
    </request>
    <message>
        <text>Request successfully processed</text> 
        <code>0</code> 
    </message>
    <response>
        <url>http://www.zillow.com/app?chartDuration=1year&chartType=partner&height=150&      page=webservice%2FGetChart&service=chart&showPercent=true&width=300&zpid=48749425</url> 
    </response>
</Chart:chart>

And what I need is to display the chart image that is at the returned URL, but how do I do that?!?
Thank you!

3 Cevap

Sen kullanabilirsiniz simple_xml:

$x = simplxml_load_string($xml);
echo '<img src="' . htmlspecialchars($x->response->url) . '">';

Eğer bana doğru yol gidiyor almak için teşekkür ederim çocuklar. Ben bunu load_string fonksiyonu ile çalışmak için alamadım neden emin değilim ..?

Bu benim ne kullanılır ve o amele, neden biliyor musunuz?

<?php
$xml = 'http://www.zillow.com/webservice/GetChart.htm?zws-id=******&unit-type=percent&
zpid='.$title->zpid.'&width=300&height=150';
$chart = simplexml_load_file($xml);
echo '<img src="' .$x->chart->url . '">';
?>

Bir değişken $ xml XML veri göz önüne alındığında, bunu ayrıştırmak ve çıkış XMLDOM fonksiyonlarını kullanarak bir <img> etiketi olabilir:

$doc = new DOMDocument();
$doc->loadXML($xml);


$nodes = $doc->getElementsByTagName("url");
if ($nodes->length>0)
{
    $node=$nodes->item(0);
    $url=htmlentities($node->nodeValue);

    echo "<img src=\"$url\">";
}

Ayrıca kullanabilirsiniz XPath

$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);

$nodes = $xpath->evaluate('Chart/response/url');
if ($nodes->length>0)
{
    $node=$nodes->item(0);
    $url=htmlentities($node->nodeValue);

    echo "<img src=\"$url\">";
}

simplexml Çok da vardır

$doc = simplexml_load_string($xml);
$url = htmlentities($doc->response->url);
echo "<img src=\"$url\">";

Note that the XML you posted is invalid - URL & karakter &amp; düzgün çalışması için bu XMLDOM yöntemlerden herhangi biri için olmalıdır. Ama bu en azından "düzgün" XML ile çalışmak nasıl gösterir

Yani, basit bir yaklaşım sadece bir regex url dışarı rip olacaktır

if (preg_match('{<url>(.*?)</url>}', $xml, $matches))
{
     $url=htmlentities($matches[1]);
     echo "<img src=\"$url\">";
}