在 php 脚本上设置 UTF-8 会生成 HTML 源代码,而不是呈现的内容



当我在一个简单的PHP脚本的顶部设置内容类型时:

<?php
    header('Content-type: text/plain; charset=utf-8');
    echo "<P>this is a paragraph</p>";
?>

该页面作为HTML源代码提供(不是php,只是HTML)。

<P>this is a paragraph</p>

为什么?

在将内容作为text/plain提供时,我不会期望其他任何东西。如果您希望浏览器将其解释为 HTML,请将标头更改为 text/html

Php 是服务器端的:它将执行并发送你告诉它发送的内容。
发送内容类型标头不会影响 php 输出,但会影响客户端对其进行计算的方式。
在您的情况下,即使您回显<script>alert('test');</script>,客户端也不会将其视为javascript,而只会将其视为文本,所有html标签也是如此。

最新更新