Hi,
also ich habe ein Problem, bei mir kann man in den bbcodes html schreiben [ code] [ /code]
Aber das Problem ist sie werden nicht ausgeben sondern sie werden mit im Quelltext verarbeitet. Was muss ich machen, damit sie angzeigt werden und nicht angewendet werden?
PHP-Code:
<?php
include 'bbcodes.php';
include 'highlighter.php';
$text = nl2br(preg_replace('/\(php\)(.*)\(\/php\)/isUe', "php_string('\\1')", replacetags($tutorial)));
echo $text;
?>
hier bbcodes.php
PHP-Code:
<?php
function replacetags($messagetext)
{
while ((strpos($messagetext,"[code]")>-1) && (strpos($messagetext,"[/code]")>-1))
{
$startpos=strpos($messagetext,"[code]")+6;
$endpos=strpos($messagetext,"[/code]",$startpos);
$text=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[code]'.$text.'[/code]';
$textstring='[b]Code:[/b]<div id="code">'.$text.'
</div>';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[url=")>-1) && (strpos($messagetext,"[/url]")>-1))
{
$startpos=strpos($messagetext,"[url=")+5;
$endpos=strpos($messagetext,"]",$startpos);
$url=substr($messagetext,$startpos,$endpos-$startpos);
$startpos=$endpos+1;
$endpos=strpos($messagetext,"[/url]",$startpos);
$urltext=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[url='.$url.']'.$urltext.'[/url]';
$textstring='[url="'.$url.'"]'.$urltext.'[/url]';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[color=")>-1) && (strpos($messagetext,"[/color]")>-1))
{
$startpos=strpos($messagetext,"[color=")+7;
$endpos=strpos($messagetext,"]",$startpos);
$color=substr($messagetext,$startpos,$endpos-$startpos);
$startpos=$endpos+1;
$endpos=strpos($messagetext,"[/color]",$startpos);
$colortext=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[color='.$color.']'.$colortext.'[/color]';
$textstring='<font color="'.$color.'">'.$colortext.'</font>';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[b]")>-1) && (strpos($messagetext,"[/b]")>-1))
{
$startpos=strpos($messagetext,"[b]")+3;
$endpos=strpos($messagetext,"[/b]",$startpos);
$text=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[b]'.$text.'[/b]';
$textstring='[b]'.$text.'[/b]';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[i]")>-1) && (strpos($messagetext,"[/i]")>-1))
{
$startpos=strpos($messagetext,"[i]")+3;
$endpos=strpos($messagetext,"[/i]",$startpos);
$text=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[i]'.$text.'[/i]';
$textstring='[i]'.$text.'[/i]';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[u]")>-1) && (strpos($messagetext,"[/u]")>-1))
{
$startpos=strpos($messagetext,"[u]")+3;
$endpos=strpos($messagetext,"[/u]",$startpos);
$text=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[u]'.$text.'[/u]';
$textstring='<u>'.$text.'</u>';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
while ((strpos($messagetext,"[s]")>-1) && (strpos($messagetext,"[/s]")>-1))
{
$startpos=strpos($messagetext,"[s]")+3;
$endpos=strpos($messagetext,"[/s]",$startpos);
$text=substr($messagetext,$startpos,$endpos-$startpos);
$codestring='[s]'.$text.'[/s]';
$textstring='<s>'.$text.'</s>';
$messagetext=str_replace($codestring,$textstring,$messagetext);
}
return $messagetext;
}?>
Und hier highlighter.php:
PHP-Code:
<?php
function php_string($messagetext){
// php code s�uber und highlighten
$messagetext = stripslashes($messagetext);
ob_start();
highlight_string($messagetext);
$messagetext = ob_get_contents();
ob_end_clean();
// anzahl der zeilen feststellen
$lines = explode("\n", $messagetext);
$numbers = "";
// zeilennummern in $numbers speichern
for ($i=0;$i<count($lines);$i++) {
$numbers .= $i+1 ."
\n";
}
// das ganze in eine tabelle bauen
$messagetext = "<center><table cellpadding=\"1\" cellspacing=\"1\" class=\"php\">
<tr>
<td valign=\"top\" width=\"20\" bgcolor=\"#eeeeee\"><code>".$numbers."</code></td>
<td valign=\"top\">".$messagetext."</td>
</tr>
</table></center>";
return $messagetext;
}
?>