2010-12-07 31 views
0

Voici un extrait du code que j'essaie de comprendre. Dans mon cours de conception de sites Web, j'ai appris que les guillemets simples de PHP «interprètent littéralement tout, comme une chaîne de caractères. Cependant, dans ce code:php 5.x et en ignorant <xml> étiquettes?

$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); 

impressions: « http://vkhovanskaya.net/images/glow.png »
et je besoin d'imprimer <href>http://vkhovanskaya.net/images/glow.png</href> parce qu'elle fait partie de ce qui sera un fichier kml (J'ai besoin des balises de balisage)

Que devrais-je faire pour échapper le <> à des tentatives d'interprétation?

+0

Cela semble un moyen vraiment mauvais pour construire un document XML. Envisagez d'utiliser [SimpleXML] (http://php.net/manual/fr/book.simplexml.php) ou [DOM] (http://www.php.net/manual/fr/book.dom.php) – Phil

Répondre

0

Interpolation à partir de quoi? Un navigateur web essaiera souvent de l'analyser ... mais PHP ne l'interpole pas, le navigateur web l'est. S'assurer que vous utilisez le bon mime-type peut aider, mais certains navigateurs (comme IE ...) essaieront souvent de tout rendre vaguement comme du texte en HTML.

FWIW, le code postal comme:

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

(Cliquez sur l'icône de l'aide ... caractères translittération rend les choses difficiles à lire?).

Si vous voulez vraiment assurer un navigateur l'affiche , vous devrez échapper les < comme & lt;

0

L'affichez-vous dans un navigateur? Si c'est le cas, affichez la source de la page et vous devriez voir votre noeud XML comme prévu.

Si vous voulez que le balisage de rendre aussi lisible dans un document HTML, utilisez htmlspecialchars ou htmlentities

echo htmlspecialchars($kmlOutput); 
+0

Oui, il est apparu dans le code source, et echo htmlspecialchars ($ kmlOutput); fonctionne très bien. Tout va même copier/coller dans google earth !! Merci! – Vera