html_highlighter.php
Quell Code
<?php
function highlight_html($tmpCode){
if(!defined('HLH_TAG')){
# Highlight-Farben
define('HLH_TAG', '#d02'); // HTML-Tag
define('HLH_ATTR', '#00d'); // HTML-Tag-Attribut
define('HLH_ATTR_VAL', '#090'); // HTML-Tag-Attribut-Wert
define('HLH_JS', '#399'); // JavaScript
define('HLH_PHP', '#970'); // PHP
define('HLH_COMM', '#777'); // HTML-Kommentar
define('HLH_ENT', '#e60'); // Entity
}
$tmpCode = htmlspecialchars($tmpCode);
$tmpCode = str_replace("\t", ' ', $tmpCode);
$tmpCode = str_replace(' ', ' ', $tmpCode);
$tmpCode = str_replace('=', '=', $tmpCode);
# PHP-Code
$tmpCode = preg_replace_callback('~<\?(.*?)\?>~is', 'hlh_htmlphp', $tmpCode);
# Javascript
$tmpCode = preg_replace_callback('~<script(.*?)>(.*?)</script>~is', 'hlh_htmljs', $tmpCode);
# Kommentar
$tmpCode = preg_replace_callback('~<!--(.*?)-->~is', 'hlh_htmlcomm', $tmpCode);
# Start-Tag (ohne Attribute)
$tmpCode = preg_replace('~<([a-z!]{1}[a-z0-9]{0,})>~is', '<<span style="color:'.HLH_TAG.'">$1</span>>', $tmpCode);
# Start-Tag
$tmpCode = preg_replace_callback('~<([a-z!]{1}[a-z0-9]{0,}) (.*?)>~is', 'hlh_htmltag', $tmpCode);
# End-Tag
$tmpCode = preg_replace('~<\/([a-z]{1}[a-z0-9]{0,})>~is', '</<span style="color:'.HLH_TAG.'">$1</span>>', $tmpCode);
# Entity
$tmpCode = preg_replace('~&([#a-z0-9]{1,20});~i', '<span style="color:'.HLH_ENT.'">&$1;</span>', $tmpCode);
$tmpCode = nl2br($tmpCode);
return '<code>'.$tmpCode.'</code>';
}
function hlh_htmltag($code){ # Callback für Start-Tags
$tag_name = $code[1];
$tag_fill = $code[2];
$tmp_tag = '<<span style="color:'.HLH_TAG.'">'.$tag_name.'</span> ';
$tmp_tag.= preg_replace_callback('~([a-z-]+)=([a-z0-9]{1,}|"(.*?)"|\'(.*?)\')~i', 'hlh_htmltagattr', $tag_fill);
$tmp_tag.= '>';
return $tmp_tag;
}
function hlh_htmltagattr($code){ # Callback für Attribute
$attr_name = $code[1];
$attr_valwq = $code[2];
return '<span style="color:'.HLH_ATTR.'">'.$attr_name.'</span>=<span style="color:'.HLH_ATTR_VAL.'">'.$attr_valwq.'</span>';
}
function hlh_htmljs($code){ # Callback für Javascript
$tag_fill = $code[1];
$jsCode = $code[2];
$jsCode = str_replace('<', '<', $jsCode);
$jsCode = str_replace('>', '>', $jsCode);
$jsCode = str_replace('&', '&', $jsCode);
return '<script'.$tag_fill.'><span style="color:'.HLH_JS.'">'.$jsCode.'</span></script>';
}
function hlh_htmlphp($code){ # Callback für PHP
$phpCode = $code[1];
$phpCode = str_replace('<', '<', $phpCode);
$phpCode = str_replace('>', '>', $phpCode);
$phpCode = str_replace('&', '&', $phpCode);
$phpCode = str_replace('"', '"', $phpCode);
$phpCode = str_replace("'", ''', $phpCode);
return '<span style="color:'.HLH_PHP.'"><?'.$phpCode.'?></span>';
}
function hlh_htmlcomm($code){ # Callback für Kommentare
$phpCode = $code[1];
$phpCode = str_replace('<', '<', $phpCode);
$phpCode = str_replace('>', '>', $phpCode);
$phpCode = str_replace('&', '&', $phpCode);
return '<span style="color:'.HLH_COMM.'"><!--'.$phpCode.'--></span>';
}
?>
<?php
$code = '<div style="color:olive;">
<strong>nur zwei €!</strong>
</div>';//Dieser Code wird dann in Farbe dargestellt
echo highlight_html($code);
?>