<?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('(<\?php )+', '', 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>';
}
$message='Ich bin ein Text mit einem Codeblock:<br />[phpcode]<?php phpinfo(); ?>[/phpcode]<br /><br />Und nun noch ein laengerer Codeblock:<br /><br />[phpcode]<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>
<?php phpinfo(); ?>[/phpcode]';
preg_match_all('#\[phpcode\](.*)\[/phpcode\]#Usi',$message,$matches);
foreach(array_unique($matches[1]) as $code){
$message=str_replace('[phpcode]'.$code.'[/phpcode]','<div style="border:1px solid #f00;max-height:200px;overflow:scroll;width:600px;">'.printCode($code).'</div>',$message);
}
echo $message;