【发布时间】:2010-07-28 20:35:15
【问题描述】:
我一直在尝试使用 PHP 输出 XML,但在 Internet Explorer 中遇到了一个奇怪的(!)错误。
预期的 xml 输出是这样的:(简化)
<root>
<match_id>12</match_id>
<stadium_id>43</stadium_id>
<tribune_id>2</tribune_id>
<fan_id>453</fan_id>
</root>
我正在使用以下 PHP 代码生成此输出:
echo "<?xml version='1.0' encoding='utf-8' ?>
<root>
<match_id>"; echo $match->getId(); echo "</match_id>
<stadium_id>43</stadium_id>
<tribune_id>2</tribune_id>
<fan_id>".$_SESSION['user_id']."</fan_id>
</root>";
在 Firefox 中,输出与预期相同。但是,在 IE 中,输出是这样的:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<match_id>0</match_id>
<stadium_id>43</stadium_id>
<tribune_id>2</tribune_id>
<fan_id />
</root>
这是一个非常烦人的错误。我已经为 XML 输出设置了 PHP 标头,并更改了许多其他内容,但无法使其正常工作。
$match->getId() 部分只是返回一个整数,但 IE 始终将此值显示为 0。如果我手动设置 <fan_id> 和 <match_id>,IE 会正确显示这些值。
顺便说一句,我在 Flash (AS3) 中使用了这个 XML 输出,这也显示了与 IE 相同的结果。
我做错了什么?
【问题讨论】:
-
我认为这不是 XML 问题。这听起来像是其他问题,可能在您的会话处理中。如果将值硬编码到输出中会发生什么?我敢打赌他们工作。
user_id设置在哪一点?
标签: php xml flash internet-explorer