highlight_file是PHP提供的一個函數,用於將指定的PHP文件內容以語法高亮的形式輸出。它會自動為關鍵字、變量、字符串等加上顏色,從而提升代碼的可讀性。該函數可以直接輸出高亮內容,也可以選擇將其返回為字符串。
函數原型如下:
highlight_file(string $filename, bool $return = false): string|bool
$filename :要讀取並高亮顯示的PHP文件路徑。
$return :是否返回高亮內容而不是直接輸出,默認為false 。
以下是一個最基本的示例,用於高亮顯示當前腳本本身的內容:
<?php
highlight_file(__FILE__);
?>
將上述代碼保存為.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>
這種方式更適合自定義展示風格,例如結合前端框架、美化排版等。