當前位置: 首頁> 最新文章列表> 使用highlight_file 配合header() 輸出正確的Content-Type 頭信息。

使用highlight_file 配合header() 輸出正確的Content-Type 頭信息。

M66 2025-07-08
<span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
&lt;hr&gt;

使用 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">&lt;?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">?&gt;</span></span><span>
</span></span>

在這段代碼中:

  1. header()函數必須在輸出任何內容之前調用,否則會導致“Headers already sent”錯誤。

  2. highlight_file()將目標文件的PHP 代碼高亮顯示,並以HTML 格式輸出。

  3. 使用__FILE__作為參數,表示高亮當前文件自身的代碼。這在調試或教學演示中非常有用。

此外,如果你希望高亮其它文件,只需將__FILE__替換為具體路徑,但要確保目標文件在訪問權限範圍內,且不會洩露敏感信息。

小提示

  • 若用於教學或代碼演示網站,建議為代碼輸出頁面添加適當的樣式或包裹在HTML 模板中,以提高可讀性和用戶體驗。

  • 避免對包含敏感數據的文件使用highlight_file() ,尤其是在生產環境中。

通過合理設置Content-Typehighlight_file()可以安全、清晰地用於展示PHP 源碼,是輕量級教學和調試場景下的利器。