highlight_string

(PHP 4, PHP 5)

highlight_stringПодсветка синтаксиса строки

Описание

mixed highlight_string ( string $str [, bool $return = false ] )

Выводит или возвращает PHP код с подсвеченным синтаксисом, используя цвета, определенные во встроенном обработчике подсветки синтаксиса PHP.

Список параметров

str

Подсвечиваемый PHP код, который должен включать открывающий тег.

return

При установке этого параметра равным TRUE функция возвращает код с подсветкой синтаксиса.

Возвращаемые значения

Если параметр return равен TRUE, то, вместо вывода, в виде строки возвращается код с подсветкой синтаксиса. В другом случае возвращает TRUE, либо FALSE при ошибке.

Список изменений

Версия Описание
4.2.0 Был добавлен параметр return.

Примеры

Пример #1 Пример использования highlight_string()

<?php
highlight_string
('<?php phpinfo(); ?>');
?>

Пример, представленный выше, выведет (в PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

Пример, представленный выше, выведет (в PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Смотрите также

Коментарии

This function will return highlighted, xhtml 1.1 valid code (replaces <font> with <span> elements and color with style attributes):

<?php

function xhtml_highlight($str) {
   
$str highlight_string($strtrue);
   
//replace <code><font color=""></font></code>
   
$str preg_replace('#<font color="([^\']*)">([^\']*)</font>#''<span style="color: \\1">\\2</span>'$str);
   
//replace other <font> elements
   
return preg_replace('#<font color="([^\']*)">([^\']*)</font>#U''<span style="color: \\1">\\2</span>'$str);
}

?>
2004-11-06 13:10:37
http://php5.kiev.ua/manual/ru/function.highlight-string.html
I didn't get the expected results from the other XHTML_highlight function, so I developed my own and it is much more efficient. The older one uses a preg_replace to replace the contents of the tag to within a span tag. The only preg_replace in my function pulls the color attribute, and puts it within a str_replace'd span tag.

<?php
function xhtml_highlight($str) {
   
$str highlight_string($strtrue);
   
$str str_replace(array('<font ''</font>'), array('<span ''</span>'), $str);
    return 
preg_replace('#color="(.*?)"#''style="color: \\1"'$str);
}

?>
2005-01-05 17:11:53
http://php5.kiev.ua/manual/ru/function.highlight-string.html
This is a little function for highlighting bbcode-stylish PHP code from a mysql database.
(Like this: [php]<?php echo "test"?>[/php])

<?php
function bbcode($s)
{
   
$s str_replace("]\n""]"$s);
   
$match = array('#\[php\](.*?)\[\/php\]#se');
   
$replace = array("'<div>'.highlight_string(stripslashes('$1'), true).'</div>'");
    return 
preg_replace($match$replace$s);
}
?>
2005-01-30 10:26:42
http://php5.kiev.ua/manual/ru/function.highlight-string.html
I've been working on a good replacement for the highlight_string() function; and here is what I've come up with so far:

<?
function get_sourcecode_string($str$return false$counting true$first_line_num '1'$font_color '#666'){
   
$str highlight_string($strTRUE);
   
$replace = array(
       
'<font' => '<span',
       
'color="' => 'style="color: ',
       
'</font>' => '</span>',
       
'<code>' => '',
       
'</code>' => '',
       
'<span style="color: #FF8000">' =>
           
'<span style="color: '.$font_color.'">'
       
);
    foreach (
$replace as $html => $xhtml){
       
$str str_replace($html$xhtml$str);
    }
   
// delete the first <span style="color:#000000;"> and the corresponding </span>
   
$str substr($str30, -9);
               
   
$arr_html      explode('<br />'$str);
   
$total_lines   count($arr_html);   
   
$out           '';
   
$line_counter  0;
   
$last_line_num $first_line_num $total_lines;
   
    foreach (
$arr_html as $line){
       
$line str_replace(chr(13), ''$line);
       
$current_line $first_line_num $line_counter;
        if (
$counting){
           
$out .= '<span style="color:'.$font_color.'">'
                 
str_repeat('&nbsp;'strlen($last_line_num) - strlen($current_line))
                  . 
$current_line
                 
': </span>';
        }
       
$out .= $line
             
'<br />'."\n";
       
$line_counter++;
    }
   
$out '<code>'."\n".$out.'</code>."\n"';

    if (
$return){return $out;}
    else {echo 
$out;}
}
?>

This function outputs valid XHTML 1.1 code by replacing font tags with span tags. You can also specify whether you want it to return or echo, output a line-count, the color of the line-count, and the starting line-count number.

Usage:
<?
// $str = string with php
// $return = true (return) / false (echo)
//    default of false
// $counting = true (count) / false (don't count)
//    default of true
// $start = starting count number
//    default of '1'
// $color = count color with preceding #
//    defalut of '#666'
get_sourcecode_string($str$return,   $counting$start$color);
?>
2005-02-17 01:15:15
http://php5.kiev.ua/manual/ru/function.highlight-string.html
With this function you can highlight php code with line numbers:

<?php
function highlight_php($string)
{
 
$Line explode("\n",$string);

  for(
$i=1;$i<=count($Line);$i++)
  {
   
$line .= "&nbsp;".$i."&nbsp;<br>";
  }
   
 
ob_start();
 
highlight_string($string);
 
$Code=ob_get_contents();
 
ob_end_clean();
 
 
$header='<table border="0" cellpadding="0" cellspacing="0" width="95%" style="border-style: solid; border-width:1px; border-color: white black black white">
    <tr>
      <td width="100%" colspan="2"  style="border-style: solid; border-width:1px; border-color: white; background-color: #99ccff; font-family:Arial; color:white; font-weight:bold;">Php-Code:</td>
    </tr>
    <tr>
      <td width="3%" valign="top" style="background-color: #99ccff; border-style: solid; border-width:1px; border-color: white;"><code>'
.$line.'</code></td>
      <td width="97%" valign="top" style="background-color: white;"><div style="white-space: nowrap; overflow: auto;"><code>'
;

 
$footer=$Code.'</div></code></td>
    </tr>
  </table>'
;

  return 
$header.$footer;
?>
2005-04-10 07:58:12
http://php5.kiev.ua/manual/ru/function.highlight-string.html
A neat function I made. Syntax coloring, row numbers, varying background colors per row in the table.

<?
function showCode($code) {
   
$html highlight_string($codetrue);
   
$html str_replace("\n"""$html);
   
$rows explode("<br />"$html);

   
$row_num = array();
   
$i 1;

    foreach(
$rows as $row) {
        if(
$i 10) {
           
$i "0".$i;
        }

        if(
$i==1) {
           
$row_num[] = "<tr><td><code><font color=\"#000000\"><code>$i</code></font>\t$row</code></td></tr>";
        }

        if(
$i!=1) {
            if(
is_int($i/2)) {
               
$row_num[] = "<tr bgcolor=\"#F9F9F9\"><td><code><font color=\"#000000\">$i</font>\t$row</code></td></tr>";
            } else {
               
$row_num[] = "<tr><td><code><font color=\"#000000\">$i</font>\t$row</code></td></tr>";
            }
        }

       
$i++;
    }
    return 
"<pre>\nFilename: <b>$_GET[file]</b>\n<table
    style=\"border:1px #000000 solid\">"
.implode($row_num)."</table></pre>";
}
?>
2005-05-29 19:02:39
http://php5.kiev.ua/manual/ru/function.highlight-string.html
On dleavitt AT ucsc DOT edu's comment:

You might want to use md5($html_string) instead of "piggusmaloy" as a generally good programming practice. Just in case "piggusmaloy" is actually in $html_string.
2005-06-13 16:04:53
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
manithu at fahr-zur-hoelle dot org forgot only one thing:  to fix the break tags.  The addidtion of the following should do it.

<?php
$str 
str_replace("<br>""<br />"$str);
?>
2005-06-15 02:32:08
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
In some cases, I found that it's useful to have highlight_string format <code>...</code> inline as part of a paragraph, and other times, as a block for demonstrating multiple lines of code. I made this function to help out.

<?php
   
function highlight_code($code$inline=false$return=false// Pre php 4 support for capturing highlight
   
{
        (string) 
$highlight "";
        if ( 
version_compare(phpversion(), "4.2.0""<") === )
        {
           
ob_start(); // start output buffering to capture contents of highlight
           
highlight_string($code);
           
$highlight ob_get_contents(); // capture output
           
ob_end_clean(); // clear buffer cleanly
       
}
        else
        {
           
$highlight=highlight_string($datatrue);
        }
       
       
## The classes below need to correspond to a stylesheet!
       
if ( $inline === true )
         
$highlight=str_ireplace("<code>","<code class=\"inline\">",$highlight);
        else
         
$highlight=str_ireplace("<code>","<code class=\"block\">",$highlight);
           
       
        if ( 
$return === true )
        {
            return 
$highlight;
        }
        else
        {
            echo 
$highlight;
        }
    }
?>
2005-06-16 06:55:00
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
Concerning my code below:

I'm sorry, I completely forgot about str_ireplace being for PHP 5 for some reason. Also, there was another error I missed (too many late nights ;)). Here's the corrected code:

<?php
   
function highlight_code($code$inline=false$return=false// Pre php 4 support for capturing highlight
   
{
        (string) 
$highlight "";
        if ( 
version_compare(PHP_VERSION"4.2.0""<") === )
        {
           
ob_start(); // start output buffering to capture contents of highlight
           
highlight_string($code);
           
$highlight ob_get_contents(); // capture output
           
ob_end_clean(); // clear buffer cleanly
       
}
        else
        {
           
$highlight=highlight_string($codetrue);
        }
       
       
# Using preg_replace will allow PHP 4 in on the fun
       
if ( $inline === true )
           
$highlight=preg_replace("/<code>/i","<code class=\"inline\">",$highlight);
        else
           
$highlight=preg_replace("/<code>/i","<code class=\"block\">",$highlight);           
       
        if ( 
$return === true )
        {
            return 
$highlight;
        }
        else
        {
            echo 
$highlight;
        }
    }
?>
2005-06-21 00:18:58
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Fully working, XHTML 1.1 ready xhtml_highlight function. I included the stripslashes, because of some problems I had with out it. It should be safe to leave it in there, but if you experience problems, feel free to take it out.

<?
function xhtml_highlight($str) {
   
$hlt highlight_string(stripslashes($str), true);
   
$fon str_replace(array('<font ''</font>'), array('<span ''</span>'), $hlt);
   
$ret preg_replace('#color="(.*?)"#''style="color: \\1"'$fon);
    echo 
$ret;
    return 
true;
}
?>
2005-09-10 13:27:46
http://php5.kiev.ua/manual/ru/function.highlight-string.html
to vouksh: I expanded your functions a bit:

<?php
function xhtmlHighlightString($str,$return=false) {
   
$hlt highlight_string(stripslashes($str), true);
   
$fon str_replace(array('<font ''</font>'), array('<span ''</span>'), $hlt);
   
$ret preg_replace('#color="(.*?)"#''style="color: \\1"'$fon);
   if(
$return)
     return 
$ret;
   echo 
$ret;
   return 
true;
}
function 
xhtmlHighlightFile($path,$return=false) {
   
$hlt highlight_file($pathtrue);
   
$fon str_replace(array('<font ''</font>'), array('<span ''</span>'), $hlt);
   
$ret preg_replace('#color="(.*?)"#''style="color: \\1"'$fon);
   if(
$return)
     return 
$ret;
   echo 
$ret;
   return 
true;
}
?>
2005-12-31 03:37:47
http://php5.kiev.ua/manual/ru/function.highlight-string.html
This hasn't been mentioned, but it appears that PHP opening and closing tags are required to be part of the code snippet.
<?php highlight_string("<? \$var = 15; ?>"); ?>
works, while
<?php highlight_string("\$var = 15;"); ?>
does not. This is unforunate for those of use who want to show tiny code snippets, but there you go. Earlier versions of this function did not have this requirement, if I remember correctly.
2006-04-19 19:43:37
http://php5.kiev.ua/manual/ru/function.highlight-string.html
This is a little chunk of code that i use to show the source of a file, i took part of the idea from a example i found on another php function page.

This code takes a php file and highlights it and places a line number next to it.  Great for on the fly debugging.

<?php
// Get a file into an array
$lines file('index.php');

// Loop through our array, show HTML source as HTML source; and line numbers too.
echo('<table border=0 cellpadding=0 cellspacing=0>');
foreach (
$lines as $line_num => $line) {
    echo(
'<tr>');
    echo(
'<td bgcolor = "#cccccc">');
    echo(
'<code>' . ($line_num 1) . '</code>');
    echo(
'</td>');
    echo(
'<td>');         
   
highlight_string($line);
    echo(
'</td>');
    echo(
'</tr>');
}

?>
2006-10-01 21:11:29
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
This fonction replaces every space with the html code &nbsp; (non-breaking space)
this is not very good because text will not go to the line and causes a big width
for example in a bordered div, text will go across the border

my solution : 
echo str_replace("&nbsp;", " ",highlight_string("Arise, you children of the fatherland",true));
echo str_replace("&nbsp;", " ",highlight_file("test.php",true));
2007-03-04 15:29:47
http://php5.kiev.ua/manual/ru/function.highlight-string.html
A simplification of functions vanessaschissato at gmail dot com at 17-Oct-2006 05:04.

Since it had trouble keeping the code intact. (It removed /* )

function showCode($code) {
 $code = highlight_string($code, true);
 $code = explode("<br />", $code);
 
 $i = "1";
 foreach ($code as $line => $syntax) {
  echo "<font color='black'>".$i."</font> ".$syntax."<br>";
  $i++;
 }
}
2007-03-31 19:06:08
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
When you quote highlighted PHP code in your website you need to escape quotes. If you quote a lot it may be annoyning. Here is tiny snippet how to make quoting tidy and clean. Write your code like this:

<?code()?>
  $string = 'Here I put my code';
<?code()?>

And somewhere else define the function:

<?
 
function code()
  {
    static 
$on=false;
    if (!
$onob_start();
    else
    {
     
$buffer"<?\n".ob_get_contents()."?>";
     
ob_end_clean();
     
highlight_string($buffer);
    }
   
$on=!$on;
  }
?>
2007-09-05 23:47:55
http://php5.kiev.ua/manual/ru/function.highlight-string.html
I wanted to build a better function and exclude operators {}=- from keywords span class. I also wanted to link functions used in my PHP code directly to the PHP site.
A lot more changes and tweaks have been made and the output is much better!

Find the function here :
http://www.tellinya.com/art2/262/highligh-php-syntax/
and ditch the old PHP one permanently.
Tested and built on PHP 5.2.0.

Looking forward to any input.
2007-12-17 06:32:19
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
Well, Just a little something I wrote which highlights an HTML code...It'll be going through many changes in the next few days.... until then =) enjoy

<?php
/*************************************\
 CODE PANE 1.0 - SILVERWINGS - D. Suissa
\*************************************/

class HTMLcolorizer{
    private 
$pointer 0//Cursor position.
   
private $content null//content of document.
   
private $colorized null;
    function 
__construct($content){
       
$this->content $content;
    }
    function 
colorComment($position){
       
$buffer "&lt;<span class='HTMLComment'>";
        for(
$position+=1;$position strlen($this->content) && $this->content[$position] != ">" ;$position++){
           
$buffer.= $this->content[$position];
        }
       
$buffer .= "</span>&gt;";
       
$this->colorized .= $buffer;
        return 
$position;
    }
    function 
colorTag($position){
       
$buffer "&lt;<span class='tagName'>";
       
$coloredTagName false;
       
//As long as we're in the tag scope
       
for($position+=1;$position strlen($this->content) && $this->content[$position] != ">" ;$position++){
            if(
$this->content[$position] == " " && !$coloredTagName){
               
$coloredTagName true;
               
$buffer.="</span>";
            }else if(
$this->content[$position] != " " && $coloredTagName){
               
//Expect attribute
               
$attribute "";
               
//While we're in the tag
               
for(;$position strlen($this->content) && $this->content[$position] != ">" ;$position++){
                    if(
$this->content[$position] != "="){
                       
$attribute .= $this->content[$position];
                    }else{
                       
$value="";
                       
$buffer .= "<span class='tagAttribute'>".$attribute."</span>=";
                       
$attribute ""//initialize it
                       
$inQuote false;
                       
$QuoteType null;
                        for(
$position+=1;$position strlen($this->content) && $this->content[$position] != ">" && $this->content[$position] != " "  ;$position++){
                            if(
$this->content[$position] == '"' || $this->content[$position] == "'"){
                               
$inQuote true;
                               
$QuoteType $this->content[$position];
                               
$value.=$QuoteType;
                               
//Read Until next quotation mark.
                               
for($position+=1;$position strlen($this->content) && $this->content[$position] != ">" && $this->content[$position] != $QuoteType  ;$position++){
                                   
$value .= $this->content[$position];
                                }   
                               
$value.=$QuoteType;
                            }else{
//No Quotation marks.
                               
$value .= $this->content[$position];
                            }                           
                        }
                       
$buffer .= "<span class='tagValue'>".$value."</span>";
                        break;           
                    }
                   
                }
                if(
$attribute != ""){$buffer.="<span class='tagAttribute'>".$attribute."</span>";}
            }
            if(
$this->content[$position] == ">" ){break;}else{$buffer.= $this->content[$position];}
           
        }
       
//In case there were no attributes.
       
if($this->content[$position] == ">" && !$coloredTagName){
           
$buffer.="</span>&gt;";
           
$position++;
        }
       
$this->colorized .= $buffer;
        return --
$position;
    }
    function 
colorize(){
       
$this->colorized="";
       
$inTag false;
        for(
$pointer 0;$pointer<strlen($this->content);$pointer++){
           
$thisChar $this->content[$pointer];
           
$nextChar $this->content[$pointer+1];
            if(
$thisChar == "<"){
                if(
$nextChar == "!"){
                   
$pointer $this->colorComment($pointer);
                }else if(
$nextChar == "?"){
                   
//colorPHP();
               
}else{
                   
$pointer $this->colorTag($pointer);
                }
            }else{
               
$this->colorized .= $this->content[$pointer];
            }
        }
        return 
$this->colorized;
    }
}
$curDocName $_REQUEST['doc'];
$docHandle fopen($curDocName,"r");
$docStrContent fread($docHandle,filesize($curDocName));
fclose($docHandle);
$HTMLinspector = new HTMLcolorizer($docStrContent);
$document $HTMLinspector->colorize();
?>

<html>
    <head>
        <style type="text/css">
        /**********************\
         * MOZILLA FIREFOX STYLE
        \**********************/
        /*pre{font-family:Tahoma;font-size:px;}*/
        .tagName{color:purple;}
        .tagAttribute{color:red;}
        .tagValue{color:blue;}
        .HTMLComment{font-style:italic;color:green;}
        </style>
    </head>
    <body>
    <?php
       
echo "<pre>".$document."</pre>";
   
?>
    </body>
</html>
2008-02-20 04:49:01
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
The simple XML syntax highlighting.

<?php
function xml_highlight($s)
{
     
$s preg_replace("|<[^/?](.*)\s(.*)>|isU","[1]<[2]\\1[/2] [5]\\2[/5]>[/1]",$s);
     
$s preg_replace("|</(.*)>|isU","[1]</[2]\\1[/2]>[/1]",$s);
     
$s preg_replace("|<\?(.*)\?>|isU","[3]<?\\1?>[/3]",$s);
     
$s preg_replace("|\=\"(.*)\"|isU","[6]=[/6][4]\"\\1\"[/4]",$s);
     
$s htmlspecialchars($s);
     
$replace = array(1=>'0000FF'2=>'808000'3=>'800000'4=>'FF00FF'5=>'FF0000'6=>'0000FF');
     foreach(
$replace as $k=>$v)
     {
         
$s preg_replace("|\[".$k."\](.*)\[/".$k."\]|isU","<font color=\"".$v."\">\\1</font>",$s);
     }
    return 
nl2br($s);
}
?>
2008-05-12 09:29:20
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
Here is an improved version of Dimitry's xml_highlight function.
I fixed a bug which replaced the first character of the tags name,
and added a line to replace the tabs and spaces with
non-breaking space symbols to keep the identation.

<?
function xml_highlight($s){
 
$s preg_replace("|<([^/?])(.*)\s(.*)>|isU""[1]<[2]\\1\\2[/2] [5]\\3[/5]>[/1]"$s);
 
$s preg_replace("|</(.*)>|isU""[1]</[2]\\1[/2]>[/1]"$s);
 
$s preg_replace("|<\?(.*)\?>|isU","[3]<?\\1?>[/3]"$s);
 
$s preg_replace("|\=\"(.*)\"|isU""[6]=[/6][4]\"\\1\"[/4]",$s);
 
$s htmlspecialchars($s);
 
$s str_replace("\t","&nbsp;&nbsp;",$s);
 
$s str_replace(" ","&nbsp;",$s);
 
$replace = array(1=>'0000FF'2=>'0000FF'3=>'800000'4=>'FF00FF'5=>'FF0000'6=>'0000FF');
  foreach(
$replace as $k=>$v) {
   
$s preg_replace("|\[".$k."\](.*)\[/".$k."\]|isU""<font color=\"#".$v."\">\\1</font>"$s);
  }

  return 
nl2br($s);
}
?>
2008-05-27 07:04:58
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Here is an improved version of the code highlighter w/ linenumbers from 'vanessaschissato at gmail dot com' - http://nl.php.net/manual/en/function.highlight-string.php#70456

<?php

   
function printCode($source_code)
    {

        if (
is_array($source_code))
            return 
false;
       
       
$source_code explode("\n"str_replace(array("\r\n""\r"), "\n"$source_code));
       
$line_count 1;

        foreach (
$source_code as $code_line)
        {
           
$formatted_code .= '<tr><td>'.$line_count.'</td>';
           
$line_count++;
           
            if (
ereg('<\?(php)?[^[:graph:]]'$code_line))
               
$formatted_code .= '<td>'str_replace(array('<code>''</code>'), ''highlight_string($code_linetrue)).'</td></tr>';
            else
               
$formatted_code .= '<td>'.ereg_replace('(&lt;\?php&nbsp;)+'''str_replace(array('<code>''</code>'), ''highlight_string('<?php '.$code_linetrue))).'</td></tr>';
        }

        return 
'<table style="font: 1em Consolas, \'andale mono\', \'monotype.com\', \'lucida console\', monospace;">'.$formatted_code.'</table>';
    }

?>
2008-06-13 12:22:01
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
Alternative XML syntax highlighting.

<?php
function xml_highlight($s)
{       
   
$s htmlspecialchars($s);
   
$s preg_replace("#&lt;([/]*?)(.*)([\s]*?)&gt;#sU",
       
"<font color=\"#0000FF\">&lt;\\1\\2\\3&gt;</font>",$s);
   
$s preg_replace("#&lt;([\?])(.*)([\?])&gt;#sU",
       
"<font color=\"#800000\">&lt;\\1\\2\\3&gt;</font>",$s);
   
$s preg_replace("#&lt;([^\s\?/=])(.*)([\[\s/]|&gt;)#iU",
       
"&lt;<font color=\"#808000\">\\1\\2</font>\\3",$s);
   
$s preg_replace("#&lt;([/])([^\s]*?)([\s\]]*?)&gt;#iU",
       
"&lt;\\1<font color=\"#808000\">\\2</font>\\3&gt;",$s);
   
$s preg_replace("#([^\s]*?)\=(&quot;|')(.*)(&quot;|')#isU",
       
"<font color=\"#800080\">\\1</font>=<font color=\"#FF00FF\">\\2\\3\\4</font>",$s);
   
$s preg_replace("#&lt;(.*)(\[)(.*)(\])&gt;#isU",
       
"&lt;\\1<font color=\"#800080\">\\2\\3\\4</font>&gt;",$s);
    return 
nl2br($s);
}
?>
2008-07-24 04:38:46
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Автор:
[EDIT BY danbrown AT php DOT net: The following note contains a user-supplied version of a syntax highlighter.]

<style type="text/css">
.linenum{
    text-align:right;
    background:#FDECE1;
    border:1px solid #cc6666;
    padding:0px 1px 0px 1px;
    font-family:Courier New, Courier;
    float:left;
    width:17px;
    margin:3px 0px 30px 0px;
    }

code    {/* safari/konq hack */
    font-family:Courier New, Courier;
}

.linetext{
    width:700px;
    text-align:left;
    background:white;
    border:1px solid #cc6666;
    border-left:0px;
    padding:0px 1px 0px 8px;
    font-family:Courier New, Courier;
    float:left;
    margin:3px 0px 30px 0px;
    }

br.clear    {
    clear:both;
}

</style>
<?php

 
function printCode($code$lines_number 0)    {
               
         if (!
is_array($code)) $codeE explode("\n"$code);
       
$count_lines count($codeE);
       
       
$r1 "Code:<br />";

         if (
$lines_number){           
               
$r1 .= "<div class=\"linenum\">";
                foreach(
$codeE as $line =>$c) {     
                    if(
$count_lines=='1')
                       
$r1 .= "1<br>";
                    else
                       
$r1 .= ($line == ($count_lines 1)) ? "" :  ($line+1)."<br />"
                 } 
                 
$r1 .= "</div>";
         }

         
$r2 "<div class=\"linetext\">";
         
$r2 .= highlight_string($code,1);
         
$r2 .= "</div>";

       
$r .= $r1.$r2;

        echo 
"<div class=\"code\">".$r."</div>\n";
    }

   
printCode('<?php echo "PHP Code" ?>    ',1);
?>

by mean
Share idea.
good luck ^_^
2009-04-19 00:45:52
http://php5.kiev.ua/manual/ru/function.highlight-string.html
<?php
function printCode($source_code)
{
if ( 
is_array($source_code))
return 
false;
$source_code=explode("\n",str_replace(array("\r\n","\r"),"\n",$source_code));
$line_count=1;
foreach ( 
$source_code as $code_line)
{
$formatted_code .='<tr><td>'.$line_count.'</td>';
$line_count++;
if ( 
ereg('<\?(php)?[^[:graph:]]',$code_line))
$formatted_code.='<td>'.str_replace(array('<code>','</code>'),'',highlight_string($code_line,true)).'</td></tr>';
else
$formatted_code .='<td>'.ereg_replace('(&lt;\?php&nbsp;)+','',str_replace(array('<code>','</code>'),'',highlight_string('<?php '.$code_line,true))).'</td></tr>';
}
return 
'<table style="font: 1em Consolas, \'andale mono\', \' monotype.com\', \'lucida console\', monospace;">'.$formatted_code.'</table>';
}
?>
2013-09-18 00:19:35
http://php5.kiev.ua/manual/ru/function.highlight-string.html
The documentation says for the first parameter "The PHP code to be highlighted. This should include the opening tag. ". But it seems that the code should not only but *must* start with PHP's opening tag or otherwise the function will still modify but will not highlight the code.
2015-05-11 18:18:09
http://php5.kiev.ua/manual/ru/function.highlight-string.html
You can change the colors of the highlighting, like this: 

<?php
ini_set
("highlight.comment""#008000");
ini_set("highlight.default""#000000");
ini_set("highlight.html""#808080");
ini_set("highlight.keyword""#0000BB; font-weight: bold");
ini_set("highlight.string""#DD0000");
?>

Like you see in the example above, you can even add additional styles like bold text, since the values are set directly to the DOM attribute "style".

Also, this function highlights only text, if it begins with the prefix "<?php". But this function can highlight other similar formats too (not perfectly, but better than nothing), like HTML, XML, C++, JavaScript, etc. I use following function to highlight different file types and it works quite good:

<?php
function highlightText(
$text)
{
   
$text = trim($text);
   
$text = highlight_string("<?php " . $text, true);  // highlight_string() requires opening PHP tag or otherwise it will not colorize the text
   
$text = trim($text);
   
$text = preg_replace("|^\\<code\\>\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>|"""$text1);  // remove prefix
   
$text preg_replace("|\\</code\\>\$|"""$text1);  // remove suffix 1
   
$text trim($text);  // remove line breaks
   
$text preg_replace("|\\</span\\>\$|"""$text1);  // remove suffix 2
   
$text trim($text);  // remove line breaks
   
$text preg_replace("|^(\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>)(&lt;\\?php&nbsp;)(.*?)(\\</span\\>)|""\$1\$3\$4"$text);  // remove custom added "<?php "

   
return $text;
}
?>

Note, that it will remove the <code> tag too, so you get the formatted text directly, which gives you more freedom to work with the result.

I personally suggest to combine both things to have a nice highlighting function for different file types with different highlight coloring sets:

<?php
function highlightText($text$fileExt="")
{
    if (
$fileExt == "php")
    {
       
ini_set("highlight.comment""#008000");
       
ini_set("highlight.default""#000000");
       
ini_set("highlight.html""#808080");
       
ini_set("highlight.keyword""#0000BB; font-weight: bold");
       
ini_set("highlight.string""#DD0000");
    }
    else if (
$fileExt == "html")
    {
       
ini_set("highlight.comment""green");
       
ini_set("highlight.default""#CC0000");
       
ini_set("highlight.html""#000000");
       
ini_set("highlight.keyword""black; font-weight: bold");
       
ini_set("highlight.string""#0000FF");
    }
   
// ...

   
$text trim($text);
   
$text highlight_string("<?php " $texttrue);  // highlight_string() requires opening PHP tag or otherwise it will not colorize the text
   
$text trim($text);
   
$text preg_replace("|^\\<code\\>\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>|"""$text1);  // remove prefix
   
$text preg_replace("|\\</code\\>\$|"""$text1);  // remove suffix 1
   
$text trim($text);  // remove line breaks
   
$text preg_replace("|\\</span\\>\$|"""$text1);  // remove suffix 2
   
$text trim($text);  // remove line breaks
   
$text preg_replace("|^(\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>)(&lt;\\?php&nbsp;)(.*?)(\\</span\\>)|""\$1\$3\$4"$text);  // remove custom added "<?php "

   
return $text;
}
?>
2015-12-26 17:50:21
http://php5.kiev.ua/manual/ru/function.highlight-string.html
I read the note from "stanislav dot eckert at vizson dot de" and I really enjoyed the function he created.
For my use I made some adaptations leaving the function more practical and allowing the passage and multiple parameters at a time, I also modified the style of the <code> element with a black background and margins.

<?php

// Combined of the highlight_string and var_export
function hl_export()
{
    try {
       
ini_set("highlight.comment""#008000");
       
ini_set("highlight.default""#FFFFFF");
       
ini_set("highlight.html""#808080");
       
ini_set("highlight.keyword""#0099FF; font-weight: bold");
       
ini_set("highlight.string""#99FF99");

       
$vars func_get_args();

        foreach ( 
$vars as $var ) {
           
$output var_export($vartrue);
           
$output trim($output);
           
$output highlight_string("<?php " $outputtrue);  // highlight_string() requires opening PHP tag or otherwise it will not colorize the text
           
$output preg_replace("|\\<code\\>|""<code style='background-color: #000000; padding: 10px; margin: 10px; display: block; font: 12px Consolas;'>"$output1);  // edit prefix
           
$output preg_replace("|(\\<span style\\=\"color\\: #[a-fA-F0-9]{0,6}\"\\>)(&lt;\\?php&nbsp;)(.*?)(\\</span\\>)|""\$1\$3\$4"$output);  // remove custom added "<?php "
           
echo $output;
        }
    } catch (
Exception $e) {
        echo 
$e->getMessage();
    }
}

// Debug multiple vars at once.
$var1 'Example String';
$var2 1987;
$var3 null;
$var4 true;
$var5 = array('Array''05'05falsenull);

hl_export$var1$var2$var3$var4$var5 );
?>
2019-01-19 21:11:10
http://php5.kiev.ua/manual/ru/function.highlight-string.html
Here is the best way to highlight code if you want classes instead of inline styles:

<?php
function highlightcode($text){
   
   
ini_set("highlight.comment""c-comment");
   
ini_set("highlight.default""c-default");
   
ini_set("highlight.html""c-default");
   
ini_set("highlight.keyword""c-keyword");
   
ini_set("highlight.string""c-string");
   
   
$text =
       
trim(
           
str_replace(
               
'<br />',
               
"\n"// replace <br> with newlines
               
str_replace(
                    [
                       
// leading <?php garbage
                       
"<span style=\"color: c-default\">\n&lt;?php&nbsp;",
                       
"<code>",
                       
"</code>"
                   
],
                   
"",
                   
highlight_string("<?php " $texttrue)
                )
            )
        );
   
   
// replace colors
   
$classes = ["c-comment""c-default""c-keyword""c-string"];
   
    foreach(
$classes as $class){
       
       
$text str_replace('<span style="color: ' $class '">''<span class="' $class '">'$text);
    }
   
    return 
$text;
}
?>

Generates output that looks like this:

<span class="c-keyword">if(</span>condition<span class="c-keyword">){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span class="c-string">"HTML&nbsp;here"</span><span class="c-keyword">;
}</span>

Hope this helps.
2023-07-04 05:00:02
http://php5.kiev.ua/manual/ru/function.highlight-string.html

    Поддержать сайт на родительском проекте КГБ