Frage

Ich habe einen PHP-Skript bekommt. Die meiste Zeit das Skript HTML zurückgibt, was in Ordnung funktioniert, aber bei einer Gelegenheit (Parameter? Format = XML) das Skript gibt XML statt HTML.

Gibt es eine Möglichkeit, die zurück MIME-Typen der PHP-Ausgabe on the fly von text / html text / xml oder application / xml zu ändern?

War es hilfreich?

Lösung

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

Weitere Informationen finden Sie auf der PHP-Dokumentation für header()

Andere Tipps

Stellen Sie den Content-Type Header:

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

Auch wenn Sie sollten wahrscheinlich statt "application / xml" verwendet werden.

Sie sollten einen Content-Type Header vor Bitte senden Sie eine Ausgabe senden.

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

Ich werde das Update beantworten, da die bisherigen Antworten sind gut.
Ich habe gelesen, dass der Internet Explorer auch für das Ignorieren Header Mime-Typ bekannt ist (die meiste Zeit?) Auf den Inhalt der Datei zu setzen (was in einigen Fällen Probleme verursachen kann).

Mmm, ich habe einen einfachen Test:

<?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 zeigt es korrekt als XML. Selbst wenn ich die XML-Deklaration entfernen.
Sie sollten angeben, welche Version problematisch ist.

Tatsächlich, wie ich oben schrieb, mit IE (6 zumindest), brauchen Sie nicht einmal einen Content-Typen, es XML-Daten erkennen und sie als Baum angezeigt werden soll. Ist Ihre XML korrekt?

[Update] Versuchte mit IE7 und fügt hinzu? Format = zu xml, die Anzeige noch XML korrekt. Wenn ich fehlerhafte XML senden, zeigt IE einen Fehler. Getestet auf WinXP Pro SP2 +

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

Sie können Codierung als auch in der gleichen Zeile hinzufügen. Ich fügte hinzu, utf-8, das ist am häufigsten.

Ich habe gerade folgenden:
HINWEIS: Ich bin mit „i“ für SQL verbessert Erweiterung.

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

Iterate durch die Reihen, Drucken von XML-Knoten für jedes

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>";
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top