如何防止URL被解释?

时间:2011-05-16 23:29:37

标签: php xml echo

我正在尝试让PHP回应这个:

http://production.shippingapis.com/ShippingAPI.dll?API=TrackV2&XML=<TrackRequest USERID=\"123456\"><TrackID ID=".$trackno."></TrackID></TrackRequest>";

但是,当我在浏览器(FF4)中打开此页面时,只显示:

http://production.shippingapis.com/ShippingAPI.dll?API=TrackV2&XML=

浏览器认为以后是XML文档的一部分,因此它不会呈现它,如下所示:

enter image description here

(部分因显而易见的原因而被删除:D)

如何解决此问题?

谢谢!

2 个答案:

答案 0 :(得分:2)

它会将其解析为HTML。它与XML无关。使用Content-Type text / plain header告诉浏览器它是纯文本。

如果此网址不是唯一的输出,但它是HTML网页的一部分,请使用htmlspecialcharshtmlentities

答案 1 :(得分:0)

你可以这样做:

$a = "http://production.shippingapis.com/ShippingAPI.dll?API=TrackV2&XML=<TrackRequest USERID=\"123456\"><TrackID ID=".$trackno."></TrackID></TrackRequest>";
echo htmlentities($a);

echo "<pre>$a</pre>"; // the first is better;