Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Syntaxhervorhebung durch reguläre Ausdrücke

PHP implementiert die Syntaxhervorhebung durch reguläre Ausdrücke

墨辰丷
墨辰丷Original
2018-06-11 13:48:071673Durchsuche

本篇文章主要介绍php通过正则表达式实现语法高亮,感兴趣的朋友参考下,希望对大家有所帮助。

本文实例讲述了php实现简单的语法高亮函数。具体分析如下:

这是一个php实现的简单语法高亮显示的函数,注意:这个函数设计的比较简单,可能对某些语法不能高亮显示,你可以自己扩充该函数的功能

function syntax_highlight($code){
 // this matches --> "foobar" <--
 $code = preg_replace(
  &#39;/"(.*?)"/U&#39;, 
  &#39;"<span style="color: #007F00">$1</span>"&#39;, $code
 );
 // hightlight functions and other structures like --> function foobar() <--- 
 $code = preg_replace(
  &#39;/(\s)\b(.*?)((\b|\s)\()/U&#39;, 
  &#39;$1<span style="color: #0000ff">$2</span>$3&#39;, 
  $code
 );
 // Match comments (like /* */): 
 $code = preg_replace(
  &#39;/(\/\/)(.+)\s/&#39;, 
  &#39;<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>&#39;, 
  $code
 );
 $code = preg_replace(
  &#39;/(\/\*.*?\*\/)/s&#39;, 
  &#39;<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>&#39;, 
  $code
 );
 // hightlight braces:
 $code = preg_replace(&#39;/(\(|\[|\{|\}|\]|\)|\->)/&#39;, &#39;<strong>$1</strong>&#39;, $code);
 // hightlight variables $foobar
 $code = preg_replace(
  &#39;/(\$[a-zA-Z0-9_]+)/&#39;, &#39;<span style="color: #0000B3">$1</span>&#39;, $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(
  &#39;/\b(print|echo|new|function)\b/&#39;, 
  &#39;<span style="color: #7F007F">$1</span>&#39;, $code
 );
 return $code;
}
/*example-start*/
/*
** Create some example PHP code:
*/
$example_php_code = &#39;
// 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;&#39;;
// output the formatted code:
print &#39;<pre class="brush:php;toolbar:false">&#39;;
print syntax_highlight($example_php_code);
print &#39;
'; /*example-end*/

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

php数组与对象的操作方法

PHP数组融合的两种方法

PHP微信接口实现二维码生成类

Das obige ist der detaillierte Inhalt vonPHP implementiert die Syntaxhervorhebung durch reguläre Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn