Heim > php教程 > PHP源码 > PHP implementiert eine einfache Syntaxhervorhebungsfunktion

PHP implementiert eine einfache Syntaxhervorhebungsfunktion

大家讲道理
Freigeben: 2016-11-11 09:50:34
Original
2058 Leute haben es durchsucht

一个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;
Nach dem Login kopieren
'; /*example-end*/


Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage