不同我一直在試圖用PHP輸出XML卻遇到了Internet Explorer中的奇怪的錯誤(!)。PHP - > XML輸出是IE
期望的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'? – 2010-07-28 20:40:34