Question

J'ai un script php. La plupart du temps, le script renvoie le code HTML, ce qui fonctionne bien, mais à une occasion (paramètre? Format = XML), le script renvoie le code XML au lieu du code HTML.

Existe-t-il un moyen de changer le type mime renvoyé de la sortie php à la volée de text / html à text / xml ou application / xml?

Était-ce utile?

La solution

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

Plus d'informations sur la header () dans la documentation PHP

Autres conseils

Définissez l'en-tête Content-Type :

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

Vous devez probablement utiliser " application / xml " à la place.

Vous devez envoyer un en-tête Content-Type avant d'envoyer une sortie.

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

Je répondrai à la mise à jour car les réponses précédentes sont bonnes.
J'ai lu qu'Internet Explorer est bien connu pour ignorer les en-têtes de type Mime (la plupart du temps?) En s'appuyant sur le contenu du fichier (ce qui peut causer des problèmes dans certains cas).

Mmm, j'ai fait un test simple:

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root><foo a="b">Tada</foo></root>';
?>

Internet Explorer 6 l’affiche correctement au format XML. Même si je supprime la déclaration xml.
Vous devez indiquer quelle version pose problème.

En fait, comme je l’ai écrit plus haut, avec IE (au moins 6), vous n’avez même pas besoin d’un type de contenu, il reconnaît les données XML et les affiche sous forme d’arbre. Votre XML est-il correct?

[Mise à jour] J'ai également essayé avec IE7, en ajoutant? format = xml également, mais en affichant toujours le code XML correctement. Si j'envoie du XML mal formé, IE affiche une erreur. Testé sur WinXP Pro SP2 +

header('Content-Type: application/xml; charset=utf-8');

Vous pouvez également ajouter un encodage dans la même ligne. J'ai ajouté utf-8, ce qui est le plus courant.

Je viens d'utiliser ce qui suit:
REMARQUE: J'utilise " i " pour sql extension améliorée.

Start XML file, echo parent node
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<marker>";

Parcourez les lignes en imprimant des nœuds XML pour chaque

while ($row = @mysqli_fetch_assoc($results)){
  // Add to XML document node
  echo '<marker ';
  echo 'id="' . $ind . '" ';
  echo 'name="' . parseToXML($row['name']) . '" ';
  echo 'address="' . parseToXML($row['address']) . '" ';
  echo 'lat="' . $row['lat'] . '" ';
  echo 'lng="' . $row['lng'] . '" ';
  echo 'type="' . $row['type'] . '" ';
  echo '/>';
}

// End XML file
echo "</marker>";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top