58 votes

changer le type mime de la sortie en php

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

Est-il possible de modifier le retourné type mime de la sortie php à la volée à partir du texte/html text/xml ou application/xml?

118voto

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

Plus d'informations sont disponibles à la documentation PHP pour header()

19voto

John Millikin Points 86775

Définir l' Content-Type - tête:

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

Si vous devriez probablement utiliser "application/xml" à la place.

4voto

andy.gurin Points 1516

Vous devez envoyer un Content-Type - tête avant de vous envoyer de sortie.

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

3voto

PhiLho Points 23458

Je vais répondre à la mise à jour depuis la précédente réponses sont bonnes.
J'ai lu que Internet Explorer est bien connu pour ignorer type Mime les en-têtes (la plupart du temps?) de s'appuyer sur le contenu du fichier (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 affiche correctement comme XML. Même si je retire la déclaration xml.
Vous devez indiquer quelle version est problématique.

En fait, comme je l'ai écrit ci-dessus, avec IE (6 au moins), vous n'avez même pas besoin d'un type de contenu, il reconnaît que les données et de les afficher sur un arbre. Est votre XML correct?

[Mise à jour] Essayé avec IE7 ainsi, l'ajout d' ?format=xml trop, encore l'affichage de XML correctement. Si j'envoie XML mal formé, c'est à dire affiche une erreur. Testé sur WinXP Pro SP2+

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X