php实现语法高亮
使用内置函数highlight_string或highlight_file
PHP提供了内置函数highlight_string和highlight_file,可直接将PHP代码转换为带有HTML标签的高亮文本。
$code = '<?php echo "Hello, World!"; ?>';
highlight_string($code);
highlight_file类似,但接受文件路径作为参数:
highlight_file('path/to/your/file.php');
自定义高亮样式
默认高亮样式通过PHP.ini中的highlight.*配置项定义。可通过CSS覆盖默认样式:
<style>
.php-keyword { color: #0077cc; }
.php-string { color: #dd1144; }
.php-comment { color: #999988; }
</style>
输出时需保留HTML标签:

highlight_string($code, true); // 第二个参数为true时返回字符串而非直接输出
使用第三方库(如GeSHi)
GeSHi(Generic Syntax Highlighter)支持多种语言的高亮,需先下载库文件。
安装后示例:
require_once('geshi.php');
$geshi = new GeSHi($code, 'php');
echo $geshi->parse_code();
GeSHi支持自定义语言、行号等功能,需查阅其文档配置。

通过正则表达式实现简单高亮
对于非PHP代码或简单需求,可用正则匹配关键字并添加HTML标签:
$code = preg_replace(
'/\b(if|else|echo)\b/',
'<span class="keyword">$1</span>',
$code
);
需配合CSS定义.keyword样式。
集成前端高亮库(如Prism.js)
若需在浏览器中高亮,可结合前端库如Prism.js:
- 引入Prism.js和CSS:
<link href="prism.css" rel="stylesheet" /> <script src="prism.js"></script> - 输出代码到
<pre><code class="language-php">标签中:echo '<pre><code class="language-php">' . htmlspecialchars($code) . '</code></pre>';
注意事项
- 内置函数仅支持PHP代码,其他语言需用第三方库。
- 转义用户输入的代码防止XSS:
htmlspecialchars()。 - 性能敏感场景考虑缓存高亮结果。






