更改php输出的mime类型

时间:2020-03-06 14:54:36  来源:igfitidea点击:

我有一个PHP脚本。大多数情况下,脚本返回html,这是可以正常工作的,但是在某些情况下(参数?Format = XML),脚本返回的是XML而不是HTML。

有什么方法可以随时将返回的php输出的mime类型从text / html更改为text / xml或者application / xml?

解决方案

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

有关更多信息,请参见PHP文档中的header()

设置Content-Type标头:

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

虽然我们可能应该改用" application / xml"。

发送任何输出之前,应发送" Content-Type"标头。

header('Content-Type: text/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 +上测试