bert: replace with $_POST

Hi,

ich habe eine preg_replace, die mir folgendes Muster ersetzen soll:

value="|name|"

und statt |name| die Variable $_POST["name"] schreibt.

$search_for[] = '/value=\"\|(.*)\|\"/iU';  
$replace_with[] = 'value="'.$_POST["$1"].'"';

habe es statt $_POST["$1"] auch mit folgendem probiert:
$_POST[$1]
$_POST["\1"]
$_POST[".'$1'."]

Wenn ich allerding direkt $_POST["name"] schreibe geht es.
Alles andere führt zu einer leeren Seite (Syntax-Fehler..)

Wie muss ich das schreiben, dass er es richtig übernimmt?

Schon mal Danke
bert

  1. Alles andere führt zu einer leeren Seite (Syntax-Fehler..)

    Wie muss ich das schreiben, ...

    Welchen Hinweis gibt denn der "(Syntax-Fehler..)"?

    1. Gar keinen. Es kommt eine komplett weiße Seite (sonst hätte ich natürlich mehr Auskunft gegeben..)

      Hatte ich aber schon öfters. Wenn irgendwo im PHP ein Fehler ist, bleibt die Seite komplett leer...

      1. مرحبا

        Hatte ich aber schon öfters. Wenn irgendwo im PHP ein Fehler ist, bleibt die Seite komplett leer...

        Kein error_reporting?

        mfg

      2. Gar keinen. Es kommt eine komplett weiße Seite (sonst hätte ich natürlich mehr Auskunft gegeben..)

        Du hast doch mehr Auskunft gegeben "(Syntax-Fehler..)" nur mit unbestimmten Wahrheitsgehalt. Laß Dir Fehler anzeigen, siehe Malcolm Beck´s.

        Und falls Du dann immer noch nicht drauf kommst, frage dich mal wo welcher String zusammengebaut wird und wie der dort wo er zusammengebaut wird aussehen wird. Im Übrigen müßte man sich das nicht fragen, denn wenn man einen Fehler sucht, dann macht man Kontrollausgaben.

        echo 'value="'.$_POST["$1"].'"'; wäre ein guter Einstieg.

        1. echo 'value="'.$_POST["$1"].'"'; wäre ein guter Einstieg.

          Das hab ich schon gemacht (ergibt value="").
          Hat meiner Meinung nach aber auch was mit der replace-Funktion zu tun, also bringt ein einfaches echo nichts (woher soll er da auch die $1 nehmen??)

          Gibt es für die Verwendung nicht irgendwo ein Manual oder so, wo man nachlesen kann, wie man die $1 bei nem preg_replace in der Ersetzung als Key eines Arrays benutzen kann?

          Könnt ihr mir wenigstens sagen, ob es generell geht?

          1. echo 'value="'.$_POST["$1"].'"'; wäre ein guter Einstieg.

            Das hab ich schon gemacht (ergibt value="").
            Hat meiner Meinung nach aber auch was mit der replace-Funktion zu tun,

            Nein. Das kann es gar nicht, denn die Ausgabe geht durch keine replace-Funktion. Das was da ausgegeben wird ist das was in der replace-Funktion verwendet wird.

            Hast Du das error_reporting jetzt eigentlich an?

            (woher soll er da auch die $1 nehmen??)

            Genau das ist der Punkt. Der String wir dort zusammengabaut wo er zusammengebaut wird, bei Dir an der Stelle, wo Du ihn in $replace_with speicherst.

            Gibt es für die Verwendung nicht irgendwo ein Manual oder so, wo man nachlesen kann, wie man die $1 bei nem preg_replace in der Ersetzung als Key eines Arrays benutzen kann?

            Könnt ihr mir wenigstens sagen, ob es generell geht?

            Das Argument wird zu einem String zusammengebaut (außer es ist schon ein String so wie bei Dir) _bevor_ es als Ersetzung an die replace-Funktion übergeben wird, in der $1 zusätzlich durch den entsprechenden Teilausdruck ersetzt wird. Der Teilausdruck kann beim Zusammenbau des Argument-Strings noch nicht vorliegen.

            Was Du willst geht _so_ nicht, Du mußt es anders realisieren. Du mußt den Teilausdruck haben bevor Du ihn verwendest.