一个php实现的简单语法高亮显示的函数,注意:这个函数设计的比较简单,可能对某些语法不能高亮显示,你可以自己扩充该函数的功能
function syntax_highlight($code){ // this matches --> foobar $code = preg_replace( '/(.*?)/u', '$1', $code ); // hightlight functions and other structures like --> function foobar() $code = preg_replace( '/(\s)\b(.*?)((\b|\s)\()/u', '$1$2$3', $code ); // match comments (like /* */): $code = preg_replace( '/(\/\/)(.+)\s/', '$0', $code ); $code = preg_replace( '/(\/\*.*?\*\/)/s', '$0', $code ); // hightlight braces: $code = preg_replace('/(\(|\[|\{|\}|\]|\)|\->)/', '$1', $code); // hightlight variables $foobar $code = preg_replace( '/(\$[a-za-z0-9_]+)/', '$1', $code ); /* the \b in the pattern indicates a word boundary, so only the distinct ** word web is matched, and not a word partial like webbing or cobweb */ // special words and functions $code = preg_replace( '/\b(print|echo|new|function)\b/', '$1', $code ); return $code;} /*example-start*/ /*** create some example php code:*/ $example_php_code = '// some code comment:$example = foobar; print $_server[remote_addr]; $array = array(1, 2, 3, 4, 5); function example_function($str) { // reverse string echo strrev($obj);} print example_function(foo); /*** a multiple line comment*/ print something: . $example;'; // output the formatted code:print '';
print syntax_highlight($example_php_code);print ''; /*example-end*/
复制代码
php