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>
这种方式更适合自定义展示风格,例如结合前端框架、美化排版等。