Mehrfaches regex_replace

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

  • Mehrfaches regex_replace

    Hi zusammen,

    Mit folgendem Code tausche ich einen Text durch ein Bild aus, der zu durchsuchende Text steht dabei in der Variable data.message
    Das funktioniert nun auch wunderbar, nur sollen im Text auch andere "Textbausteine" ersetzt werden, also bräuchte ich die Möglichkeit hier nun folgendes:

    Code:
    {$data.message|nl2br|stripslashes|regex_replace:"/:hdl:/":"<img src='/mdates/templates/default-blue/images/hdl.gif'>"}
    Code:
    {$data.message|nl2br|stripslashes|regex_replace:"/:smile:/":"<img src='/mdates/templates/default-blue/images/smile.gif'>"}
    {$data.message|nl2br|stripslashes|regex_replace:"/:hdl:/":"<img src='/mdates/templates/default-blue/images/hdl.gif'>"}
    Das funktioniert aber nicht, ich erwarte keine Lösung, aber fein wäre wenn mir jemand den Weg zeigen könnte ...

    Danke schon mal im voraus,

    Matthias

  • #2
    preg_replace() kann auch mit arrays als suchen/ersetzen parameter umgehen.

    allersding wird smarty das wohl eher nicht können. das musst du mal testen, ansonsten im php-code umsetzen.


    noch ein tipp: nl2br() erst nach dem ersetzen der smileys aufrufen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Und wie könnte in PHP so ein Array aussehen? Genau darum geht es mir nämlich eben, ich kann ja ruhig vorgeben das :smiley: den wert www.buxdehude.de/smiley.gif haben soll, nur weiß ich nicht wie ich das regex darauf anwenden kann und wie so ein array für regex auszusehen hat.

      Kommentar


      • #4
        ein blick ins manual hilft ....

        hier ein ansatz

        PHP-Code:
        $text ':smile1: skdjksjdkjsdk :smile2:';

        $s = array( '/:smile1:/i',
                    
        '/:smile2:/i',
                    
        '/:smile3:/i',
                    
        '/:smile4:/i',
                    
        '/:smile5:/i'
                  
        );
                  
        $r = array( 'bild1',
                    
        'bild2',
                    
        'bild3',
                    
        'bild4',
                    
        'bild5'
                  
        );
                  
        $text preg_replace($s$r$text); 
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar

        Lädt...
        X