Ersetzung in Preg_replace mit function aufruf

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

  • Ersetzung in Preg_replace mit function aufruf

    Hi,

    ich kann irgendwie den inhalt der Klammer im Suchmuster nicht als functions namen verwenden um als ersetzung eine function aufzurufen ...
    PHP-Code:
     $row['email_message'] = 'Hallo %var_user_nick% was geht';
     
    $row['email_message'] = preg_replace('/\%(var_\w+)\%/', $1(), $row['email_message']);

    function 
    var_user_nick() {

        return 
    'manfred';

    So funktionier das nicht ... ich will das $1 der inhalt der () als funktionsname benutzt wird
    wenn ich den functionsnamen allerdings in einer normalen variable haben functioniert das ganze
    PHP-Code:
     $test 'var_user_nick';
     
    $row['email_message'] = 'Hallo %var_user_nick% was geht';
     
    $row['email_message'] = preg_replace('/\%(var_\w+)\%/'$test(), $row['email_message']);

    function 
    var_user_nick() {

        return 
    'manfred';

    hat jemand eine IDee ?

  • #2
    versuchs mal mit
    Code:
    $row['email_message'] = preg_replace("!%(var_\w+)%!e", "$1()", $row['email_message']);
    ^^ das klappt bei mir

    EDIT:
    geändert, die erste idee war grütze
    Zuletzt geändert von Wurzel; 11.04.2005, 12:50.
    Kissolino.com

    Kommentar


    • #3
      wieso nicht:
      PHP-Code:
      $test var_user_nick (); 
      Dann hat die Variable schon den Rückgabewert der Funktion..

      Deine Variante find ich sehr sehr umständlich..
      PHP Code Schnipsel

      Kommentar


      • #4
        @Wurzel

        ja erste Variante ging nicht ...

        das jetzt geht bei mir auch thx ...
        hatte es auch so probiert allerdings mit meinem RegExp, komme von Perl eigentlich .,..

        was ist das für eine RegExp Variante die du da hast ?
        scheint ja an dem anderen Suchmuster zu liegen also ... merkwürdig ... naja



        @Foggy

        Nein das geht nicht, da ich $test nicht habe praktisch, der functionsname dessen rückgabewert die Ersetzung liefert ist mir ja nicht bekannt es gibt praktisch einen Emailtext

        Hallo %user%,
        du hast %was% und deine emailadresse ist %email%

        nun sollen mit dem ausdruck alle dynamischen inhalte automatisch ersetzt werden in dem text,
        und die funktionen user was und email haben dann jeweils datenbankabfragen für den entsprechenden user

        Kommentar


        • #5
          Original geschrieben von Chopper
          was ist das für eine RegExp Variante die du da hast ?
          ist eigentlich nur der modifier "e" der dafür sorgt, dass der ersetzungsstring als php-code geparst wird => http://de.php.net/manual/de/referenc....modifiers.php
          Kissolino.com

          Kommentar

          Lädt...
          X