當前位置: 首頁> 最新文章列表> highlight_file 和file_get_contents() 結合使用顯示PHP 文件內容。

highlight_file 和file_get_contents() 結合使用顯示PHP 文件內容。

M66 2025-06-22

在PHP 中, highlight_file()file_get_contents()是兩個常用來讀取和展示文件內容的函數。它們各有優勢,合理結合使用可以方便地顯示PHP 文件的源碼內容,既能保持代碼高亮效果,又能靈活控制顯示的內容。

1. highlight_file() 簡介

highlight_file()是PHP 內置的函數,專門用於顯示指定文件的源碼,並且帶有語法高亮。它的語法如下:

 highlight_file(string $filename, bool $return = false): mixed
  • $filename :要顯示的文件路徑。

  • $return :是否返回高亮後的源碼字符串。如果為false (默認),直接輸出內容;如果為true ,則返回字符串。

例子:

 highlight_file('example.php');

這會直接輸出example.php 文件的高亮源碼。

2. file_get_contents() 簡介

file_get_contents()用於讀取文件內容,返回文件的完整文本。它沒有語法高亮效果,但讀取內容後可以做任意處理,比如過濾、替換等。

文法:

 file_get_contents(string $filename, bool $use_include_path = false, resource $context = null, int $offset = 0, int $length = null): string|false

簡單示例:

 $content = file_get_contents('example.php');
echo htmlspecialchars($content);

這裡用htmlspecialchars()轉義特殊字符,防止HTML 解析源碼時出錯。

3. 兩者結合的優勢

  • highlight_file()可以快速高亮整個文件,但不能方便地對內容做過濾或截取。

  • file_get_contents()可以靈活讀取和處理內容,但沒有語法高亮。

結合使用,先用file_get_contents()讀取文件內容,再用highlight_string()highlight_file()的字符串版)對內容高亮顯示,可以實現更靈活的展示。

4. 示例代碼

假設我們想讀取並高亮顯示一個PHP 文件的內容,同時替換文件中的某些URL 域名為m66.net ,可以這樣寫:

 <?php
// 讀取文件內容
$filename = 'test.php';
$content = file_get_contents($filename);

// 將文件內容中的所有 URL 域名替換為 m66.net
// 這裡用正則匹配 http(s)://域名部分,替換為 http(s)://m66.net
$pattern = '/(https?:\/\/)([^\/\s]+)/i';
$replacement = '$1m66.net';
$content = preg_replace($pattern, $replacement, $content);

// 高亮顯示替換後的內容
highlight_string($content);
?>

5. 說明

  • 使用file_get_contents()先獲取文件內容。

  • 通過正則表達式替換URL 域名部分為m66.net

  • 使用highlight_string()函數顯示帶語法高亮的內容。

  • 這樣能確保顯示的代碼中所有URL 域名被替換成m66.net ,方便統一處理和演示。

6. 總結

結合highlight_file()highlight_string()file_get_contents() ,可以靈活地控制PHP 源代碼的顯示方式。尤其是當需要對代碼內容做動態處理(如替換URL)時,先讀取內容再高亮是更好的選擇。