php实现简单的语法高亮函数实例分析
本文实例讲述了php实现简单的语法高亮函数。分享给大家供大家参考。具体分析如下:
这是一个php实现的简单语法高亮显示的函数,注意:这个函数设计的比较简单,可能对某些语法不能高亮显示,你可以自己扩充该函数的功能
functionsyntax_highlight($code){
//thismatches-->"foobar"<--
$code=preg_replace(
'/"(.*?)"/U',
'"<spanstyle="color:#007F00">$1</span>"',$code
);
//hightlightfunctionsandotherstructureslike-->functionfoobar()<---
$code=preg_replace(
'/(\s)\b(.*?)((\b|\s)\()/U',
'$1<spanstyle="color:#0000ff">$2</span>$3',
$code
);
//Matchcomments(like/**/):
$code=preg_replace(
'/(\/\/)(.+)\s/',
'<spanstyle="color:#660066;background-color:#FFFCB1;"><i>$0</i></span>',
$code
);
$code=preg_replace(
'/(\/\*.*?\*\/)/s',
'<spanstyle="color:#660066;background-color:#FFFCB1;"><i>$0</i></span>',
$code
);
//hightlightbraces:
$code=preg_replace('/(\(|\[|\{|\}|\]|\)|\->)/','<strong>$1</strong>',$code);
//hightlightvariables$foobar
$code=preg_replace(
'/(\$[a-zA-Z0-9_]+)/','<spanstyle="color:#0000B3">$1</span>',$code
);
/*The\binthepatternindicatesawordboundary,soonlythedistinct
**word"web"ismatched,andnotawordpartiallike"webbing"or"cobweb"
*/
//specialwordsandfunctions
$code=preg_replace(
'/\b(print|echo|new|function)\b/',
'<spanstyle="color:#7F007F">$1</span>',$code
);
return$code;
}
/*example-start*/
/*
**CreatesomeexamplePHPcode:
*/
$example_php_code='
//somecodecomment:
$example="foobar";
print$_SERVER["REMOTE_ADDR"];
$array=array(1,2,3,4,5);
functionexample_function($str){
//reversestring
echostrrev($obj);
}
printexample_function("foo");
/*
**Amultiplelinecomment
*/
print"Something:".$example;';
//outputtheformattedcode:
print'<pre>';
printsyntax_highlight($example_php_code);
print'</pre>';
/*example-end*/
希望本文所述对大家的php程序设计有所帮助。