我在PHP中创建了一个Syntax Highlighter,但是我失败了!您在创建脚本注释时看到(//
)语法高亮显示(gray
),我遇到了一些问题。所以我刚创建了一个简短版本的语法高亮功能,向您展示我的所有问题。无论什么时候PHP变量,即$example
,被插入到它未得到的评论之间grayed
,因为它应该根据我的语法高亮显示。您看到我正在使用preg_replace()
来实现此目的。但我目前使用的regex
似乎并不正确。我尝试了几乎所有我知道的知识,但它不起作用。请参阅下面的演示代码。PHP正则表达式问题!
问题演示代码
<?php
$str = '
<?php
//This is a php comment $test and resulted bad!
$text_cool++;
?>
';
$result = str_replace(array('<','>','/'),array('[',']','%%'),$str);
$result = preg_replace("/%%%%(.*?)(?=(\n))/","<span style=\"color:gray;\">$0</span>",$result);
$result = preg_replace("/(?<!\"|'|%%%%\w\s\t)[\$](?!\()(.*?)(?=(\W))/","<span style=\"color:green;\">$0</span>",$result);
$result = str_replace(array('[',']','%%'),array('<','>','/'),$result);
$resultArray = explode("\n",$result);
foreach ($resultArray as $i) {
echo $i.'</br>';
}
?>
问题演示画面
所以你看到的结果,我想要的是$test
在 '演示屏幕' 的注释字符串以上也应该着色为gray
!(见下图)
谁能帮我解决这个问题吗?
I'm Aware of highlight_string() function!
感谢提前!
作为PHP有这种设施在建,还有一个*问题,为什么*你正在做它,而不是它有助于说。 – Orbling
你真的在滚动你自己吗?为什么重新发明轮子? –
请哥们帮帮我。 –