當前位置: 首頁> 最新文章列表> 如何使用highlight_file 輸出PHP 文件的語法高亮

如何使用highlight_file 輸出PHP 文件的語法高亮

gitbox 2025-05-26

什麼是highlight_file函數?

highlight_file是PHP提供的一個函數,用於將指定的PHP文件內容以語法高亮的形式輸出。它會自動為關鍵字、變量、字符串等加上顏色,從而提升代碼的可讀性。該函數可以直接輸出高亮內容,也可以選擇將其返回為字符串。

函數原型如下:

 highlight_file(string $filename, bool $return = false): string|bool
  • $filename :要讀取並高亮顯示的PHP文件路徑。

  • $return :是否返回高亮內容而不是直接輸出,默認為false


使用highlight_file實現基本語法高亮

以下是一個最基本的示例,用於高亮顯示當前腳本本身的內容:

 <?php
highlight_file(__FILE__);
?>

將上述代碼保存為.php文件並在瀏覽器中訪問,就可以看到帶有顏色的源碼輸出。


如何高亮顯示其他PHP文件

如果你想讓用戶通過URL參數指定要查看的文件(例如代碼目錄下的某個PHP文件),可以參考以下示例:

 <?php
$filename = $_GET['file'] ?? '';

$allowed_files = [
    'example1.php',
    'example2.php'
];

if (in_array($filename, $allowed_files)) {
    highlight_file(__DIR__ . '/' . $filename);
} else {
    echo '非法文件請求。';
}
?>

你可以通過如下方式訪問文件內容的高亮頁面:

 https://gitbox.net/highlight.php?file=example1.php

注意:**出於安全考慮,永遠不要直接使用用戶提供的路徑來讀取文件。 **上述代碼限制了只允許查看特定文件,防止目錄遍歷攻擊等安全風險。


返回字符串並自定義顯示方式

如果你想更靈活地控制顯示方式(比如添加CSS樣式、包裹在特定的HTML結構中),可以通過設置$return參數為true ,將高亮內容作為字符串返回:

 <?php
$highlighted = highlight_file('example1.php', true);
?>

<!DOCTYPE html>
<html>
<head>
    <title>代碼高亮展示</title>
    <style>
        body {
            background-color: #f0f0f0;
            font-family: monospace;
        }
        .code-box {
            background-color: #fff;
            padding: 20px;
            border: 1px solid #ddd;
            overflow-x: auto;
        }
    </style>
</head>
<body>
    <h2>example1.php 的代碼展示</h2>
    <div class="code-box">
        <?php echo $highlighted; ?>
    </div>
</body>
</html>

這種方式更適合自定義展示風格,例如結合前端框架、美化排版等。