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

  • Gast-Avatar
    Ein Gast erstellte das Thema Funktion in den Ersetz-String bei preg_replace?.

    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?

  • Corvin
    antwortet
    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;
    }
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Modifer e ?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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...

    Einen Kommentar schreiben:


  • Zergling-new
    antwortet
    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.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Doku lesen!

    http://de.php.net/preg_replace_callback

    Einen Kommentar schreiben:

Lädt...
X