изменить mime-тип вывода в php

У меня есть PHP-скрипт. В большинстве случаев скрипт возвращает html, который работает нормально, но однажды (параметр? Format = XML) скрипт возвращает XML вместо HTML.

Есть ли способ изменить возвращаемый тип mime вывода php на лету из text / html в text / xml или application / xml?

Related of "изменить mime-тип вывода в php"

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

Дополнительная информация доступна в документации PHP для header()

Задайте заголовок Content-Type :

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

Хотя вы, вероятно, должны использовать «application / xml» вместо этого.

Я отвечу на обновление, так как предыдущие ответы хороши.
Я прочитал, что Internet Explorer хорошо известен тем, что игнорировал заголовки Mime-типа (большую часть времени?), Чтобы полагаться на содержимое файла (что может вызвать проблемы в некоторых случаях).

Ммм, я сделал простой тест:

 <?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 отображает его правильно как XML. Даже если я удалю объявление xml.
Вы должны указать, какая версия является проблематичной.

Фактически, как я писал выше, с IE (по крайней мере, 6), вам даже не нужен тип контента, он распознает данные XML и отображает его как дерево. Правильно ли ваш XML?

[Обновление] Пробовал также с IE7, добавив? Format = xml тоже, по-прежнему отображая XML правильно. Если я отправляю неверный XML, IE отображает ошибку. Протестировано на WinXP Pro SP2 +

Перед отправкой любого результата вы должны отправить заголовок Content-Type .

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

Я просто использовал следующее:
ПРИМЕЧАНИЕ. Я использую «i» для улучшенного расширения sql.

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

Итерация по строкам, печать XML-узлов для каждого

 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>";