Problem mit BBcode

SoundXplosion

Grünschnabel
Problem mit BBcode (Php Code mit Zeilennummerierung)

Das Problem was ich habe, ist mein BBcode.
Die funktion "[ php ][ /php ]".

Funktionieren tut auch alles, das einzige was er falsch macht wenn man etwas postet mit diesen Code, numeriert er das ganze weiter als er es soll.

Mein code:

PHP:
function code_tpl($type, $file) {
    
    $file = preg_replace("/(\r\n|\r)/m", "\n", trim($file));
    $file = preg_replace("/\t/", " ", $file);

    $lines = explode("\n", $file);

    $number_width = strlen(strval(sizeof($lines)));
    
    for($i = 0, $n = sizeof($lines); $i < $n; $i++)
    {
        $output .= str_pad($i + 1, $number_width, "0", STR_PAD_LEFT).":<br>";
        $ausgabe .= $lines[$i];
    }

    $t_code['type']= "Code:";
    $t_html['type']= "HTML:";
    $t_php['type'] = "PHP:";
    
    $table_style = "<table style='table-layout:fixed;' align='center'><tr><td><div style='overflow:auto; width:600px;'>
<table style='width:100%;' class='tableinborder' cellpadding='4' cellspacing='1'><tr class='smallfont'>
<td class='tablecat' colspan='2'><span class='smallfont'><b>{type}</b></span></td></tr><tr class='smallfont'>
<td class='inposttable' align='right' nowrap='nowrap'  style='background-color:#F9BA40;' width='5%'><pre>{number}</pre></td>
<td class='inposttable' width:100%;' align='left' nowrap='nowrap' valign='top'><pre>{code}</pre></td></tr></table></div>
</td></tr></table>";

    $table = eregi_replace("{type}",${"t_".$type}['type'],$table_style);
    $table = eregi_replace("{number}",$output,$table);
    $table = eregi_replace("{code}",$ausgabe,$table);
    
    return $table;
}

und mein eigentlicher BBcode:

PHP:
function bbcodes($string) 
{
    $string = preg_replace("#\[php\](.*)\[\/php\]#isUe", 
"code_tpl('php',highlight_string(html_entity_decode('$1'), true))", $string);

    return $string; 
}

Aussehen tut das ganze dann so:

http://www.xtrem-com.at/shot.jpg

Wieso macht er nach der Zeile 6 weiter?
(Ich habe auch beim post nach dem "?>" kein Enter benutzt)
Hoffe ihr könnt mir helfen.

Lg
 
Zuletzt bearbeitet:
Du kannst ja mal einen print_r() oder var_dump() auf den Inhalt von $file machen, um zu sehen, ob dort Line-Feeds zu finden sind.
 
Wie sollen diese "Line-Feeds" aussehen?

Ich wende diese Befehle bei der Ausgabe vom Text an also "print_r oder var_dump(bbcodes($text))". Bei der anwendung der Funktion print_r kommt in die Box eine 1.
Wenn ich die Funktion var_dump anwende kommt in die Box string(1260) "text".

Wenn ich es aber innerhalb meiner Funktionen (code_tpl und bbcodes) anwende Dann kommen nur Fehlermeldungen.

Lg
 
Zuletzt bearbeitet:
Zurück