web-dev-qa-db-fra.com

Sortie XML brut à l'aide de php

Je veux sortir du XML brut d'une manière similaire à http://www.google.com/ig/api?weather=Mountain+View mais en utilisant PHP.

J'ai un script php très simple sur mon serveur web:

<?php 

      $output = "<root><name>sample_name</name></root>";
      print ($output);
?> 

Tout ce que je peux voir dans Chrome/Firefox est "sample_name". Je veux voir:

<root>
     <name>sample_name</name>
</root>

Je ne trouve pas de tutoriel pour quoi que ce soit de simple.

Merci

23
RNs_Ghost

Par défaut PHP définit le Content-Type sur text/html, donc les navigateurs affichent votre document XML comme une page HTML.

Pour que le navigateur traite le document comme XML, vous devez définir le type de contenu:

header('Content-Type: text/xml');

Faites-le avant d'imprimer quoi que ce soit dans votre script.

58
Arnaud Le Blanc
<?php 
header('Content-Type: application/xml');
$output = "<root><name>sample_name</name></root>";
print ($output);
?> 
11
Pedro Lobito

Vous voyez uniquement "sample_name" parce que vous n'avez pas spécifié que votre sortie est XML et que le navigateur pense que c'est HTML, donc vos éléments XML sont interprétés comme des éléments HTML.

Pour voir le XML brut, vous devez dire au navigateur que vous envoyez réellement du XML en envoyant le type de contenu correct dans l'en-tête HTTP:

header('Content-Type: application/xml');

Cela doit être envoyé (mis dans le code) avant de mettre quoi que ce soit d'autre.

4
Lukas Knuth

Par souci d'exhaustivité, comme personne ne l'a encore mentionné, vous pouvez également générer du XML brut dans une page HTML, en échappant < comme &lt;, > comme &gt;, et & comme &amp;. Pour ce faire, utilisez la fonction maladroitement nommée htmlspecialchars .

Souvent, vous souhaiterez également conserver des espaces dans l'argument, ce qui peut être fait en l'entourant de <pre> Mots clés. Donc, une ligne courante pour le débogage ou l'inclusion d'un échantillon est la suivante:

 echo '<pre>' . htmlspecialchars($raw_xml) . '</pre>';
3
IMSoP

Appuyez simplement sur Control-U. Votre navigateur affichera le code source brut de la page sous un nouvel onglet, que ce soit XML ou HTML ou autre ...

1
user110357