您可以更改高亮的顏色,例如:
<?php
ini_set("highlight.comment", "#008000");
ini_set("highlight.default", "#000000");
ini_set("highlight.html", "#808080");
ini_set("highlight.keyword", "#0000BB; font-weight: bold");
ini_set("highlight.string", "#DD0000");
?>
如您在上面的示例中所见,您甚至可以添加额外的样式,例如粗体文本,因为值直接设置为 DOM 属性“style”。
此外,此函数仅高亮文本,如果它以前缀“<?php”开头。但此函数也可以高亮其他类似的格式(不完全,但比没有好),比如 HTML、XML、C++、JavaScript 等。我使用以下函数来高亮不同的文件类型,效果还不错
<?php
function highlightText($text)
{
$text = trim($text);
$text = highlight_string("<?php " . $text, true); $text = trim($text);
$text = preg_replace("|^\\<code\\>\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>|", "", $text, 1); $text = preg_replace("|\\</code\\>\$|", "", $text, 1); $text = trim($text); $text = preg_replace("|\\</span\\>\$|", "", $text, 1); $text = trim($text); $text = preg_replace("|^(\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>)(<\\?php )(.*?)(\\</span\\>)|", "\$1\$3\$4", $text); return $text;
}
?>
注意,它也会删除 <code> 标记,这样您就可以直接获得格式化的文本,这为您提供了更多处理结果的自由。
我个人建议将这两者结合起来,为不同的文件类型使用不同的高亮颜色集,以获得良好的高亮功能
<?php
function highlightText($text, $fileExt="")
{
if ($fileExt == "php")
{
ini_set("highlight.comment", "#008000");
ini_set("highlight.default", "#000000");
ini_set("highlight.html", "#808080");
ini_set("highlight.keyword", "#0000BB; font-weight: bold");
ini_set("highlight.string", "#DD0000");
}
else if ($fileExt == "html")
{
ini_set("highlight.comment", "green");
ini_set("highlight.default", "#CC0000");
ini_set("highlight.html", "#000000");
ini_set("highlight.keyword", "black; font-weight: bold");
ini_set("highlight.string", "#0000FF");
}
$text = trim($text);
$text = highlight_string("<?php " . $text, true); $text = trim($text);
$text = preg_replace("|^\\<code\\>\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>|", "", $text, 1); $text = preg_replace("|\\</code\\>\$|", "", $text, 1); $text = trim($text); $text = preg_replace("|\\</span\\>\$|", "", $text, 1); $text = trim($text); $text = preg_replace("|^(\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>)(<\\?php )(.*?)(\\</span\\>)|", "\$1\$3\$4", $text); return $text;
}
?>