使用XML在输出中显示图像

时间:2013-02-12 11:33:17

标签: php xml

我已经完成了以下代码从URL中提取图像,但是我收到了XML解析错误。如何显示包含所有XML输出的图像?

$error = true;
$msg = 'profile';
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
if($error)
{
    echo "<response>";
    echo "<success>S</success>";
    echo "<message>".trim($msg)."</message>";
    echo "<userid>".trim($userid)."</userid>";
    echo "<username>".trim($username)."</username>";
    echo "<firstname>".trim($firstname)."</firstname>";
    echo "<lastname>".trim($lastname)."</lastname>";
    echo "<email>".trim($email)."</email>";
    echo "<follower>".trim($follower)."</follower>";
    //echo "<photo><img src=photo/".trim($photo) ." height='200' width='200'></photo>";
    echo "</response>";
}

3 个答案:

答案 0 :(得分:3)

对于这样一个简单的XML块,您可以使用PHP's SimpleXML API生成<response> XML块。对于XML文档本身和没有属性的直接元素,它就像:

$response          = new SimpleXMLElement('<response/>');
$response->success = 5;
$response->message = trim($msg);

对于带有img子元素和属性的photo元素,它就像:

$img           = $response->addChild('photo')->addChild('img');
$img["src"]    = "photo/" . trim($photo);
$img["height"] = 200;
$img["width"]  = 200;

当您使用“SimpleXML基本示例”进行谷歌浏览时,您会发现与此类似的PHP示例以及PHP手册中的更多信息。

正如您所看到的,您不需要关心XML编码,SimpleXML API会为您执行此操作。

然后输出类似于直接:

header('Content-type: text/xml');
echo $response->asXML();

我希望这很有帮助,示例输出是:

<?xml version="1.0"?>
<response><success>5</success><message>profile</message><photo><img src="photo/nice-day.jpg" height="200" width="200"/></photo></response>

美化:

<?xml version="1.0"?>
<response>
    <success>5</success>
    <message>profile</message>
    <photo>
        <img src="photo/nice-day.jpg" height="200" width="200"/>
    </photo>
</response>

答案 1 :(得分:1)

XML无法使用&lt; img src = ...&gt;标记以显示图像。这是一个HTML标记。您可以拥有应用程序可以读取然后呈现的图像的URL,但这是特定于应用程序的(即浏览器,移动电话或桌面应用程序) - 这是XML的要点,它是通用的,而不是绑定到单一申请。

答案 2 :(得分:0)

src值使用单引号并关闭img代码

       $error=true;
       $msg='profile';
       header('Content-type: text/xml');
       echo '<?xml version="1.0" encoding="UTF-8"?>';
       if($error)
       {
               echo "<response>";
               echo "<success>S</success>";
               echo "<message>".trim($msg)."</message>";
               echo "<userid>".trim($userid)."</userid>";
               echo "<username>".trim($username)."</username>";
               echo "<firstname>".trim($firstname)."</firstname>";
               echo "<lastname>".trim($lastname)."</lastname>";
               echo "<email>".trim($email)."</email>";
               echo "<follower>".trim($follower)."</follower>";
               echo "<photo><img src='photo/".trim($photo)."' height='200' width='200'></img></photo>";
               echo "</response>";
       }