hasch
30-08-2007, 19:32
Kennt von euch jemand die Möglichkeit, wie man ein Array als String, bsw. $var = "$test['value']" in eine Variable umwandeln kann? Sinn und Zweck ist die Nutzung der Globalen Variable $_SERVER in den Template-Dateien :)
| Zurück zum Forum |
|
Archiv verlassen und diese Seite im Standarddesign anzeigen : hasch 30-08-2007, 19:32 Kennt von euch jemand die Möglichkeit, wie man ein Array als String, bsw. $var = "$test['value']" in eine Variable umwandeln kann? Sinn und Zweck ist die Nutzung der Globalen Variable $_SERVER in den Template-Dateien :) penizillin 30-08-2007, 19:34 was willst du? :confused: hasch 30-08-2007, 19:38 Ich habe im Template-Quelltext bsw. $_SERVER['REMOTE_ADDR'] stehen und diese Variable (noch als String vorliegend) soll nun mittels PHP mit dem Inhalt von $_SERVER['REMOTE_ADDR'] ersetzt werden. Bei normalen Variablen ja kein Problem, da man nur ein zusätzliches $ vor den String-Variablennamen setzen muss... Ich hoffe es war nun etwas verständlicher :) ArSeN 30-08-2007, 19:52 Ich hoffe es war nun etwas verständlicher Nö. :dontknow: Arrays kannst du "in strings umwandeln" mit serialize() und umgekehrt mit unserialize(), aber ich habe die Vermutung das meinst du nicht. Achsooo du meinst $var = $test['value']; TobiaZ 30-08-2007, 20:18 Original geschrieben von ArSeN Achsooo du meinst $var = $test['value'];Nein, steht doch (fast) schon im ersten Posting. am besten fährst du mit str_replace() oder preg_match_callback hasch 30-08-2007, 20:21 Stimmt mit eval wär das möglich, danke :) TobiaZ 30-08-2007, 20:24 habs extra nochmal editiert, weils sicher sicherer geht. ArSeN 30-08-2007, 21:03 Kapier immernoch nich was da jez gemeint war. :confused: TobiaZ 30-08-2007, 21:04 er hat nen String: $var = 'das ist mein Server: $_SERVER['HTTP_HOST']'; und will, dass der Teilstring $_SERVER['HTTP_HOST'] durch die entsprechende Variable ersetzt wird. Wozu das gut ist, hinterfragen wir nicht. ;) ArSeN 30-08-2007, 21:05 Aaaah... ein Satz. Gut. Danke :D PHP-Desaster 30-08-2007, 21:07 Original geschrieben von ArSeN Kapier immernoch nich was da jez gemeint war. :confused: Er hat eine Templateengine und möchte den String "$_SERVER['HTTP_HOST']" durch den Inhalt der Variable $_SERVER['HTTP_HOST'] ersetzen! Am Sichersten wird wohl sein, wenn du eine Ersetzung durchführst: $rep = str_replace( "\$_SERVER['HTTP_HOST']", $_SERVER['HTTP_HOST'], $str ); Edit: Viiiiel zu lahm! TobiaZ 30-08-2007, 21:09 Er hat eine Templateengine und möchte den String "$_SERVER['HTTP_HOST']" durch den Inhalt der Variable $_SERVER['HTTP_HOST'] ersetzen! Die hat er eben noch nicht. ;) hasch 01-09-2007, 16:33 Danke für eure Antworten. Habe mir mal was neues zusammengebastelt: $pattern = '#\{\$\$(.*?)\[[\'|\"](.*?)[\'|\"]\]\}#is'; preg_match_all($pattern, $this->content, $matches); $i=0; foreach($matches[0] AS $key => $match) { $this->content = str_replace($match, ${$matches[1][$i]}[$matches[2][$i]], $this->content); $i++; } $matches[1] enthält den Variablennamen, $matches[2] den Arraynamen des Elements, ist auch alles enthalten, nur ausgeben tut er es nicht, sieht jemand, woran es ggf. liegen könnte? TobiaZ 01-09-2007, 21:30 nur ausgeben tut er es nicht, Ich seh keine ausgabe. poste mal den inhalt von $matches hasch 01-09-2007, 23:00 print_r gibt/gab folgendes aus: Array ( [0] => Array ( [0] => {$$_SERVER['REMOTE_ADDR']} ) [1] => Array ( [0] => _SERVER ) [2] => Array ( [0] => REMOTE_ADDR ) ) TobiaZ 01-09-2007, 23:13 "${$matches[1][$i]}[$matches[2][$i]]" Was bist du denn da am veranstalten? Was steht in $match? Was steht in $this->content? hasch 01-09-2007, 23:20 $match enthält: {$$_SERVER['REMOTE_ADDR']} $this->content enthält den Inhalt der Seite, also auch: {$$_SERVER['REMOTE_ADDR']} Mit "${$matches[1][$i]}[$matches[2][$i]]" wollte ich auf $_SERVER['REMOTE_ADDR'] zugreifen, da man ja mit ${"_SERVER['REMOTE_ADDR']"} nicht den Inhalt von $_SERVER['REMOTE_ADDR'] zurückgeliefert bekommt :) TobiaZ 01-09-2007, 23:33 Original geschrieben von hasch Mit "${$matches[1][$i]}[$matches[2][$i]]" wollte ich auf $_SERVER['REMOTE_ADDR'] zugreifen, da man ja mit ${"_SERVER['REMOTE_ADDR']"} nicht den Inhalt von $_SERVER['REMOTE_ADDR'] zurückgeliefert bekommt :) Keine Ahnung, wie man auf so nen verhackstückelten Code kommt. ${$arr}[$key] |
- - |