<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 本段为与正文无关的 PHP 示例代码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"以下是正文内容:"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
使用 highlight_file 配合 </span><span><span class="hljs-title function_ invoke__">header</span></span><span>() 输出正确的 Content-Type 头信息
------------------------------------------------------
在使用 PHP 内建的 `</span><span><span class="hljs-title function_ invoke__">highlight_file</span></span><span>()` 函数显示源代码时,浏览器通常需要正确的 `Content-Type` 头信息来正确渲染页面内容。如果未显式设置该头部信息,服务器可能返回默认的 MIME 类型,进而导致高亮显示的 HTML 被当作纯文本处理,影响可读性和格式。
为了解决这个问题,可以使用 `</span><span><span class="hljs-title function_ invoke__">header</span></span><span>()` 函数在调用 `</span><span><span class="hljs-title function_ invoke__">highlight_file</span></span><span>()` 前发送适当的头信息。通常推荐的 Content-Type 为 `text/html; charset=utf-</span><span><span class="hljs-number">8</span></span><span>`,以确保内容以 HTML 格式显示并支持 UTF-</span><span><span class="hljs-number">8</span></span><span> 编码。
下面是一个示例,展示如何正确地使用这两个函数:
```php
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 设置内容类型为 HTML,并指定字符集为 UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: text/html; charset=utf-8'</span></span><span>);
</span><span><span class="hljs-comment">// 输出当前文件的语法高亮内容</span></span><span>
</span><span><span class="hljs-title function_ invoke__">highlight_file</span></span><span>(</span><span><span class="hljs-keyword">__FILE__</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
在这段代码中:
header() 函数必须在输出任何内容之前调用,否则会导致“Headers already sent”错误。
highlight_file() 将目标文件的 PHP 代码高亮显示,并以 HTML 格式输出。
使用 __FILE__ 作为参数,表示高亮当前文件自身的代码。这在调试或教学演示中非常有用。
此外,如果你希望高亮其它文件,只需将 __FILE__ 替换为具体路径,但要确保目标文件在访问权限范围内,且不会泄露敏感信息。
若用于教学或代码演示网站,建议为代码输出页面添加适当的样式或包裹在 HTML 模板中,以提高可读性和用户体验。
避免对包含敏感数据的文件使用 highlight_file(),尤其是在生产环境中。
通过合理设置 Content-Type,highlight_file() 可以安全、清晰地用于展示 PHP 源码,是轻量级教学和调试场景下的利器。
相关标签:
header