Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion in den Ersetz-String bei preg_replace?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Funktion in den Ersetz-String bei preg_replace?

    Kann man eine Funktion in den Ersetz-String einbauen? Also zb sucht man nach [Hallo]url[/hallo]. Wenn man das dann mit pre_replace_all zerstückeln lässt, und anders wieder zusammensetzt. Kann man die url vorher mit einer Funktion bearbeiten ohne grossen Aufwand?


  • #2
    Doku lesen!

    http://de.php.net/preg_replace_callback

    Kommentar


    • #3
      Anders zusammensetzen kannst du z.B. mit \1
      Das ist der Platzhalter für den 1. Inhalt einer Gruppierung mit ( ) usw.

      Code:
      preg_replace_all("/\[(.*)\](http.*)\[\1\]/", "\1", $string);
      müsste dir also [x]url[/x] durch x ersetzen. Ist allerdings ungetestet.

      Kommentar


      • #4
        Ich hab das Gefühl ich wurde missverstanden oder ich hab das Doku nicht richtig verstanden.
        Aber ich dachte mir das so:
        [hallo]url[/hallo]
        am Ende wieder zusammensetzen als "<wuff>".function("url")."</wuff>"
        Ich hab mir da auch was ausgedacht mit preg_match_all. Also erst zerlegen, dann bearbeiten und dann mit erneuten suchen wieder erstetzen. Aber ich dachte, dass es vll eine einfachere Methode und natürlich weniger CPU-lastige Methode gibt...

        Kommentar


        • #5
          Modifer e ?

          Kommentar


          • #6
            Sowas?
            PHP-Code:
            <?php
            $string 
            '[Hallo]http://www.inphpfriend.de[/Hallo]';
            $string preg_replace('/\[Hallo\](.*)\[\/Hallo\]/isUe''make_url("\\1")'$string);

            function 
            make_url($url) {
                
            $url '[url="'.$url.'"]'.$url.'[/url]';
                return 
            $url;
            }
            ?>

            Kommentar

            Lädt...
            X