[PHP] Brauche Code, komme nicht weiter :(
-
Hi,
erstmals vorab: Ich bin der absolute Noob in PHP aber ich komme absolut nicht weiter beim Thema: preg_replace
Ich habe einen String:
"Hallo, ich möchte mal sagen das dies hier: [qote]Dies ist ein TestText[/qote] das Beste ist!"Jetzt möchte ich was zwischen diesen [qote] und [qote] (Auf das U wurde mit absicht nicht rücksicht genommen wegen dem BB code!) an diese Funktion übergeben:
function formateString ($str)
{
...
return $str;
}und den daraus zurückgegebenen String dort hin setzen wo vorher dieser Text war der zwischen [qote] und [qote] war (inkl. [qote] und [qote]).
Ich hab mir auf der PHP Referenz mal diesen kram über diese Funktion angesehen und bin darüber total verzweifelt
Auch wenn diese Bitte relativ blöde klingt: Aber könnte mir jemand erklären wie ich preg_replace oder evtl. ne andere Funktion dafür umbaue damit das klappt was ich will und mir zeigen wie das genau geht?
Wäre euch mega dankbar.
Mfg.
-
$string = preg_replace("/[qote](.*)[\/qote]/Ue","formateString('\\1')",$string);
-
flenders schrieb:
$string = preg_replace("/[qote](.*)[\/qote]/Ue","formateString('\\1')",$string);
Danke! mein ich das jedoch oder wird \n darin ignoriert? Wenn ich diesen Text übergebe:
"Hallo, ich möchte mal sagen das dies hier: [qote]Dies ist ein**\n** TestText[/qote] das Beste ist!"
Ist der Output nicht der selbe wie wenn ich den hier übegebe ohne \n
"Hallo, ich möchte mal sagen das dies hier: [qote]Dies ist ein TestText[/qote] das Beste ist!"Wie kann ich das richtig machen?
-
beschäftige dich mit preg_*
du wirst es sowieso brauchen.kleiner tipp: es fehlt nur ein m
-
wie ein m? wo soll das m denn hin? sorry aber bin totaler noob in PHP
-
Auch auf die Gefahr hin, dass du dich selbst damit beschäftigen musst:
http://www.php.net/manual/de/reference.pcre.pattern.modifiers.php
Edit: Ich wäre außerdem für ein s. Und es ist vllt. auch empfehlend, sich auf der Seite insgesamt ein wenig umzuschauen.
-
Hi,
also das hat mir schon was weitergeholfen, ich hab es so gemacht, doch leider war das irgendwie (mal wieder) nicht korrekt
str = preg_replace("/\\[quote\\](.*)\\[\\/quote\\]/Uem","formateString('\\\1')",str);
m für multiline ist enthalten, aber wieso geht es trotzdem noch nicht? *kratz*
-
Dasd schrieb:
Edit: Ich wäre außerdem für ein s.
Aber trotzdem sich nochmal mit der Bedeutung davon vertraut machen.