Hallo,

Ik heb een tijd geleden een hele ubb functie gemaakt, maar sinds vandaag vind ik een fout in de functie.
Als ik een groot lap text tussen de ubb zet, dan werkt de ubb code niet meer:

http://profiel.krielkip.nl/?p=duckie als voorbeeld.
Hier zie je een grote 'profielenlijst' tussen de tag text staan.
Echter zet hij hem hier niet om. Maar bij de onderstaande 3 text tags wel.

Hoe werkt het?
Hij pakt de level en bekijk welke tags er instaan.
Pakt de tags en de vervang stuk.
Pakt dan de [content] om in de lap text die er tussen moet.
Zet dan de tags om in de vervang.

Database stuctuur:
Code:
ubb, vervang, rank 
move, <marquee>[content]</marquee>, 2 
text, <textarea cols="60" rows="7">[content]</textarea>, 1
Huidige code
Code:
// start ubb functie  [incl Smiley + scheldbeveiling]
    Function ubb_controle ( $bericht, $level = '0', $persoon = '0' )
    { 
        // Html -> UBB [Zorgen dat die slechte dingens niet werken]    
        $bericht = htmlspecialchars($bericht);    
        $bericht = stripslashes($bericht); 
        
        // Standaart opmaak
        $bericht = str_replace("","<b>",$bericht);
            $bericht = str_replace("","</b>",$bericht);
            $bericht = str_replace("","<i>",$bericht);
            $bericht = str_replace("","</i>",$bericht);
            $bericht = str_replace("","<u>",$bericht);
            $bericht = str_replace("","</u>",$bericht);
        
        
        // is level wel bepaald?
        if ( $level >= "1") 
        {
            // Standaart boven 1 check!
                $bericht = eregi_replace("\[img\]","<img src=",$bericht);
                $bericht = eregi_replace("\[/img\]"," border=0>",$bericht);
                $bericht = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\\1 target=_blank>\\2</a>",$bericht);    
                              
                // ubb in database check
            $ubb_query = mysql_query("SELECT ubb, vervang FROM phpd_ubb WHERE rank <= '". $level ."'");
        
            $ubbteller = 1;
        
                    while ($ubb_result = mysql_fetch_object($ubb_query)) 
                    {
                        $ubbcode[$ubbteller] = $ubb_result->ubb;
                            $ubbdoen[$ubbteller] = $ubb_result->vervang;
                            $ubbteller++;        
                    }
                
                for ($i=1;$i<=$ubbteller;$i++) 
                    {
                        $ubbdoen[$i] = str_replace("[content]" , "\\1", $ubbdoen[$i]);
                        $bericht = eregi_replace("\\[$ubbcode[$i]\\]([^\\[]*)\\[/$ubbcode[$i]\\]","$ubbdoen[$i]",$bericht);
                      }
                
                
        }
}
Kan men helpen om dit te verbeteren?

De move text werkt normaal wel, Maar omdat mijn 'betaald' account is verlopen doet hij het niet. [Is rank 2, en laad nu alleen rank 1]