Thomas: preg_replace und create_function

$text = preg_replace_callback("![name=(.*)]!U", create_function('$1', '
         $id = array_search($1);
         if(!$id) die("Der Benutzer $1 konnte nicht gefunden werden");
         return "<a href="http://www.meineurl.de/index.php?benutzer=$id">$1</a>";'), $text);

  1. Oh, sry.
    Ich hab scheinbar beim Code reinkopiern den Rest rausgelöscht :-(

    Also meine Frage: Was ist denn an dieser Funktion falsch:

    $text ist ein schon verarbeiteter textarea-Inhalt, es sollen teile wie z.B. [name=Hubert] durch <a href="http://www.meineurl.de/index.php?benutzer=2">Hubert</a> ersetzt werden.

    Danke
    Thomas

  2. Hi Thomas!

    Also meine Frage: Was ist denn an dieser Funktion falsch:

    Wie merkst du denn, dass etwas falsch ist? Und bitte schreibe nicht, dass es nicht gehe.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Sry, also ich erhalte folgende Fehlermeldung:
      Parse error: syntax error, unexpected '$', expecting '&' or T_VARIABLE in /home/httpd/test.php(27) : runtime-created function on line 1

      Da dürfte irgendetwas bei der Übergabe des durch den reg. Ausdruck ausgewählten Bereiches nicht passen, aber der wird doch in der temp. var $1 gespeichert, oder?

      Danke
      Thomas

      1. Hi Thomas!

        $text = preg_replace_callback("![name=(.*)]!U", create_function('$1', '
                 $id = array_search($1);
                 if(!$id) die("Der Benutzer $1 konnte nicht gefunden werden");
                 return "<a href="http://www.meineurl.de/index.php?benutzer=$id">$1</a>";'), $text);

        Wenn du das Programmstück "create_function('$1'," "übersetzt", kommt dabei folgendes heraus:
        "create_function('Benutzername',"

        Laut Handbuch werden create_function als erstes die Funktionsargumente mitgegeben.

        Meine Frage an dich: Musst du diese wirklich angeben oder hast du sie nicht schon längst? ;-)
        Was passiert, wenn du einfach einen leeren String übergibst?

        Ich selbst habe noch nie mit create_function gearbeitet. Aber vielleicht konnten dir meine Tipps ja helfen.

        PS: Nochmal der Holzhammer: Der Benutzername ist kein gültiges Argument, das du der Funktion mitgeben kannst!

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)