是 header('Content-Type:text/plain');有必要吗?

我还没有看到任何区别与否这个头部信息。


答案 1

定义“必要”。

如果您希望浏览器知道文件类型,这是必要的。PHP 会自动将标头设置为如果您不覆盖它,以便您的浏览器将其视为不包含任何 HTML 的 HTML 文件。如果你的输出包含任何HTML,你会看到非常不同的结果。如果您要发送:Content-Typetext/html

<b><i>test</i></b>

Content-Type: text/html; charset=UTF-8将在浏览器文本中以粗体和斜体显示:

✅ 还行

而会在浏览器中显示如下:Content-Type: text/plain; charset=UTF-8

<b><i>✅ OK</i></b>

TLDR 版本:如果你真的只输出没有特殊字符的纯文本,那么这并不重要,但它是错误的<>


答案 2

PHP默认使用Content-Type,这与它非常相似,这解释了为什么你看不到任何差异。text/htmltext/plain

text/plain如果要按原样输出文本(包括 和 符号),则必须使用内容类型。<>

例子:

header("Content-Type: text/plain");
echo "<b>hello world</b>";
// Displays in the browser: <b>hello world</b>

header("Content-Type: text/html");
echo "<b>hello world</b>";
// Displays in the browser with bold font: hello world

推荐