Wildcards in PHP

morlon

Grünschnabel
tach!
habe ein kleines problem mit wildcards in php.
wenn ich zum beispiel sowat habe:
PHP:
$test="Morlon ist der beste der Welt";
$test=str_replace("*der beste*","Der schlechteste!",$test);
Dann sollte $test doch eigentlich am ende den Wert "Der schlechteste" haben, weil bei "*der beste*" ja wildcards um "der beste" sind, und dieser ausschnitt ja in "Morlon ist der beste der Welt" vorkommt.
Iss aber nich so, wird einfach nicht ersetzt!
Aber PHP unterstuetzt doch wohl Wildcards!
Menschenskinnas, das regt mich dermaßen auf!
ich hab das grad in einem script, und komme deshalb einfach nich weiter...

SO HELFET MIR
 
php unterstützt nicht nur widcards sondern
komplett regulaere ausdrücke !!!

mann schaue sich mal
ereg_replace
eregi_replace
ereg
eregi
an! da sind noch ein paar andere möglichkeiten als nur *
so geht auch ?h*[a|A]\\ usw :)

aber reguelaere ausdrücke lernt mann am besten wenn mann sich ein bissel perl anschaut :)

gruss
 
@ woddi:
neenee, so war das ja nich gemeint, es soll ja nich nur "der beste", sondern der gesamte string ersetzt werden, in dem script ist mir ja nur ein teil des strings bekannt.
zugegeben, das gepostete beispiel war nich das beste *g*
 
@ holyfly:
hmm, was ist denn nun der genaue unterschied zwischen ereg_replace und str_replace, hab mir das mal angeschaut, steige da aber nicht ganz durch :(
 
mit ereg_replace kannst du verkettungen von suchbegriffen ändern zb.:
PHP:
$string = "[ u]Unterstrichen[ /u]";
$string = ereg_replace("(\[ u\])(.*)(\[ /u\])","<u>\\\\2</u>",$string);
echo $string;
Der Vorteil gegenüber str_replace liegt darin, das man hier z.B. den UBB-Code nur erstetzt wenn er follstaändig ist und nicht blin alles was wie [ u ] aussieht durch <u> ersetzt... aber in deinem falle geht das glaub ich nicht ... ich habs auch schonmal so probiert und es ging net ...
(P.S. Leerzeichen rausnehmen)
 
Zuletzt bearbeitet:
Zurück