function in platzhalter von preg_replace

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

  • function in platzhalter von preg_replace

    Hi Forums!

    ich hätte da eine frage, ich würde gerne in einer Funktion eine Funktion verwenden, in einem Platzhalter "\\1"

    Das ganze sieht soll dann so aussehen:

    PHP-Code:

      $start_1 
    "<table cellpadding=\"7\" width=\"100%\" class='box4'>
    <tr bgcolor='#F5BE58' class='tbg'>
    <td class='box4'>Zitat von: "
    ;
      
    $start_2 "</td></tr><tr bgcolor='#FFCE9D'><td class='box4'><hr />";
      
    $ende="</td></tr></table>";
        
    $text =
     
    preg_replace('!\[ quote=(.*)\](.*)\[\/ quote\]!Uis'$start_1.getperfectnick('\\1',0,20).
    $start_2.'\\2'.$ende$text ); 
    wenn ich sie ausführe, erkennt er immer nur die ID 1, anstatt den tatsächlichen wert "\\1". Es ist der funktion getperfectnick() möglich entweder die ID oder den Nicknamen in der funktion zu verwenden. ich habe die die funktion, damit er den link zum profil erstellt, dazu die geschlechtgraphik mit dem alter auszugeben. wäre nett, wenn das gehen würde.

    wie setzt man das richtig um?

    danke für alle antworten.
    Zuletzt geändert von xManUx; 28.08.2004, 13:43.

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

  • #2
    preg_replace_callback ist dein froint
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

    Kommentar


    • #3
      ich bekomme das nicht richtig umgesetzt...

      Das hab ich gefunden.. aber auch nicht weiter gebracht.. :-( bekomme das mit dem 2. argument nicht hin

      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
      sondern mit den Augen das Manual zu lesen.

      Kommentar


      • #4
        Achso, du meinst die andernen Argumente die an deine funktion übergeben werden.... mh, da ist was dran, dann wär es vielleicht einfacher du schreibst
        PHP-Code:
        preg_replace(/regex/[b]e[/b],"$start_1.getperfectnick('\\\1',0,20).$start_2.'\\\2'.$ende",$string); 
        wobei ich da eigentlich kein freund von bin!!
        Die Musikreview Seite

        hi, i'm a signature virus. copy me into your signature to help me spread.

        Kommentar


        • #5
          Original geschrieben von Tartax
          wobei ich da eigentlich kein freund von bin!! [/B]
          because?

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #6
            Weil jegliche art von eval erstmal eine Sicherheitslücke darstellt...


            du mußt übrigens afaik noch ein echo an den anfang des "replaces" machen
            Die Musikreview Seite

            hi, i'm a signature virus. copy me into your signature to help me spread.

            Kommentar


            • #7
              funzt auch nicht wirklich ;D

              guckst du über permalink: permalink

              PS: mit echo gleiches ergebnis

              habe es momentan so:

              Code:
              $text = preg_replace('!\[quote=(.*)\](.*)\[\/quote\]!Uis', $start_1."perfectnick('\\1','0','20')".$start_2.'\\2'.$ende, $text);
              Zuletzt geändert von xManUx; 28.08.2004, 16:30.

              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
              sondern mit den Augen das Manual zu lesen.

              Kommentar


              • #8
                bist du dir bewust was /e macht? es behandelt den $replace string als php code, deshlab sollte der string bei dir dann so aussehen:
                PHP-Code:
                $replace =  'echo $start_1.getperfectnick(\\'\\\\1\\',0,20).
                $start_2.\\'
                \\\\2\\'.$ende;'
                so muß es dann klappen, wenn du " statt ' nimmst interpretiert er dir die Variablen daraus....
                Die Musikreview Seite

                hi, i'm a signature virus. copy me into your signature to help me spread.

                Kommentar


                • #9
                  hab ich jetzt auch versucht, das geht auch nicht wirklich, habe jetzt im moment keine lust mehr.

                  soll scheinbar heute wohl nicht sein, trotzdem danke

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar

                  Lädt...
                  X