2010-12-07 44 views
0

这是我想要了解的代码片段;在我的网页设计课上,我了解到,单引号“'将字面意思解释为字符串。然而,在这个代码:php 5.x并忽略<xml>标记?

$kml = array(); 
$kml[] = '<kml xmlns="http://earth.google.com/kml/2.1">'; 
$kml[] = ' <Document>'; 
$kml[] = ' <Style id="hitStyle">'; 
$kml[] = ' <IconStyle id="hitIcon">'; 
$kml[] = ' <Icon>'; 
$kml[] = ' <href>http://vkhovanskaya.net/images/glow.png</href>'; 
$kml[] = ' </Icon>'; 

$kmlOutput = $kml[5]; 
print($kmlOutput); 

打印:“http://vkhovanskaya.net/images/glow.png”
,我需要它来打印<href>http://vkhovanskaya.net/images/glow.png</href>因为它的 部分将是一个什么KML文件(我需要标记标签)

我应该怎么做才能逃避<>解释尝试?

+0

这似乎是一个非常糟糕的方式来建立一个XML文档。考虑使用[SimpleXML](http://php.net/manual/en/book.simplexml.php)或[DOM](http://www.php.net/manual/en/book.dom.php) – Phil 2010-12-07 22:52:34

回答

0

从什么插值?一个网页浏览器通常会试图解析它......但PHP并不是内插它,而是浏览器。确保你使用正确的mime类型可能会有所帮助,但是一些浏览器(比如IE ......)通常会尝试像HTML一样模糊地呈现一切。

FWIW,邮编,如:

$kml[] = '<href>http://vkhovanskaya.net/images/glow.png'; 

(点击图标帮助...音译字符使事情很难读?)

如果你真的想确保浏览器显示它,你需要跳出<'s & lt;

0

您是否在浏览器中显示?如果是这样,查看页面源代码,并且您应该看到您的XML节点。

如果您想要标记呈现在HTML文档中为可读,使用htmlspecialcharshtmlentities

echo htmlspecialchars($kmlOutput); 
+0

是的,它确实显示在源代码中,并且echo htmlspecialchars($ kmlOutput);效果很好。它甚至可以复制/粘贴到谷歌地球!谢谢! – Vera 2010-12-07 22:59:47