• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Trotz U wird preg_replace "gierig" warum?

Status
Für weitere Antworten geschlossen.

CrackPod

Neues Mitglied
[php:1:7dc8f36537]<?php
$txt1 = "Verschachtelung: [ b]Langweiliger, [ i]dummer[ /i] und [ u]sinnloser[ /u] Bildtext[/b] ";
$txt2 = "[ u][ i][ b]und jetz Fehler[ /b][ /i][ /u]: ";
$txt3 = "[ u]unterstreichen wird [ b]ned[ /b] aufgehört [ u]oder[ /u] kursiv grundlos beendet[/I] falsche verschachtelung:[ b][ u]fett&amp;unterstrichen[ /b][ /u]";
function bbcode($str)
{
$str = preg_replace("!\[b\](.*?)\[/b\]!isU","$1",$str);
$str = preg_replace("!\[i\](.*?)\[/i\]!isU","$1",$str);
$str = preg_replace("!\[u\](.*?)\[/u\]!isU","<u>$1</u>",$str);
return $str;
}
echo bbcode($txt1);
echo bbcode($txt2);
echo bbcode($txt3);
?>[/php:1:7dc8f36537]

Das is mein code aber, wenn man den ausführt, merkt man, dass das ding gierig wird wie bei http://www.tutorials.de/tutorials142738.html&highlight=regul%E4re+ausdr%FCcke beschrieben und trotz U bleibt das drecks ding gierig..

Bitte die Leerzeichen der BBCodes, die in den strings vorkommen weglassen(hab ich gemacht weil sonst phpbb das als fett oder so schreibt)
 
ich weiß jetzt wo der fehler lag:
(.*?) das ? macht die function von U wieder rückgängig(frag mich ned warum), aber als ich es rausgenommen habe, hats gefunzt
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben