[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?


  • Mod

    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.


Anmelden zum Antworten