PHP 5.4.36 Released

highlight_string

(PHP 4, PHP 5)

highlight_stringRemarcado de sintaxis de una cadena

Descripción

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

Imprime o devuelve marcas html para una versión con la sintaxis remarcada del código de PHP dado usando los colores definidos en el remarcador de sintaxis interno de PHP.

Parámetros

str

El código PHP a ser remarcado. Esto podría incluir la etiqueta de apertura.

return

Establezca este parámetro a TRUE para hacer que esta función devuelva el código remarcado.

Valores devueltos

Si return está establecido a TRUE, devuelve el código remarcado como cadena en vez de imprimirlo. De otro modo, devolverá TRUE en caso de éxito, y FALSE en caso de fallo.

Ejemplos

Ejemplo #1 Ejemplo de highlight_string()

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

El ejemplo de arriba imprimirá (en PHP 4):

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

El ejemplo de arriba imprimirá (en 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>

Notas

Nota:

Cuando el parámetro return se usa, esta función utiliza el almacenamiento en búfer de salida interno, por lo que no puede usarse dentro de una función de llamada de retorno ob_start().

La marca de HTML generada está sujeta a cambios.

Ver también

add a note add a note

User Contributed Notes 26 notes

up
7
admin [at] develogix [dot] com
9 years ago
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($str, TRUE);
    $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($str, 30, -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);
?>
up
3
www.phella.net
7 years ago
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 (!$on) ob_start();
    else
    {
      $buffer= "<?\n".ob_get_contents()."?>";
      ob_end_clean();
      highlight_string($buffer);
    }
    $on=!$on;
  }
?>
up
4
manithu at fahr-zur-hoelle dot org
10 years ago
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($str, true);
   
//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);
}

?>
up
1
admin at bwongar dot com
9 years ago
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($str, true);
   
$str = str_replace(array('<font ', '</font>'), array('<span ', '</span>'), $str);
    return
preg_replace('#color="(.*?)"#', 'style="color: \\1"', $str);
}

?>
up
2
Pyerre
7 years ago
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));
up
0
joshuaeasy4u at gmail dot com
1 year ago
<?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>';
}
?>
up
0
Mean^_^
5 years ago
[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 ^_^
up
0
Dobromir Velev
6 years ago
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);
}
?>
up
0
wm at tellinya dot com
7 years ago
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.
up
0
supremacy2k at gmail dot com
7 years ago
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++;
}
}
up
0
stalker at ruun dot de
8 years ago
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($path, 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;
}
?>
up
0
zer0
9 years ago
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", "<") === 1 )
        {
           
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($code, true);
        }
       
       
# 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;
        }
    }
?>
up
0
zero
9 years ago
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", "<") === 1 )
        {
           
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($data, true);
        }
       
       
## 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;
        }
    }
?>
up
0
Sam Wilson
9 years ago
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);
?>
up
0
bpgordon at gmail dot com
9 years ago
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.
up
0
trixsey at animania dot nu
9 years ago
A neat function I made. Syntax coloring, row numbers, varying background colors per row in the table.

<?
function showCode($code) {
    $html = highlight_string($code, true);
    $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>";
}
?>
up
-1
Dmitry S
6 years ago
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);
}
?>
up
-1
Dmitry S
6 years ago
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);
}
?>
up
-1
tyler dot reed at brokeguysinc dot com
8 years ago
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>');
}

?>
up
-1
vouksh at vouksh dot info
9 years ago
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;
}
?>
up
-2
peter at int8 dot com
8 years ago
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.
up
-1
fsx dot nr01 at gmail dot com
6 years ago
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_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>';
    }

?>
up
-2
Daniel
6 years ago
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>
up
-1
support at superhp dot de
9 years ago
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;
}
?>
up
-1
gaggge at gmail dot com
9 years ago
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);
}
?>
up
-2
Anonymous
9 years ago
growling octopus's code didn't work under Windows, so I made this and it worked:
<?php
if (!empty($_GET['source'])) {
  
$f = file_get_contents($_SERVER['SCRIPT_FILENAME']);
  
highlight_string($f);
   exit();
}
?>
To Top