Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

PHP: komisches Verhalten von Array

  Alt 26. Jun 2005, 16:26
Hallo ihr,

ich bin wieder mal knapp davor, PHP fuer heute in die Tonne zu schmeissen. Ich hab mir mein phpBB ein bisschen aufgebohrt, und will eine aus der DB ausgelesene Template-Variable ins Template reinschreiben. Da die Template-Engine aber mit solchen Faellen nicht umgehn kann, muss ich mir meine Template-Variable selbst raussuchen und den Wert manuell reinschreiben. Dies geht eigentlich so:
Code:
$caption = preg_replace("#\{([a-z0-9\-_]*?)\}#is", $template->_tpldata['.'][0]['\\1'], $caption);
in $caption steht in diesem Fall {L_PORTAL} drin, aber es wird auch nichts ausgegeben. Also habe ich folgendes probiert:
Code:
$caption = preg_replace("#\{([a-z0-9\-_]*?)\}#is", '\\1: '. $template->_tpldata['.'][0]['\\1'] ." : ". $template->_tpldata['.'][0]['L_PORTAL'], $caption);
Ausgegeben wird dann folgendes, und das macht mich stutzig:
Code:
L_PORTAL: : Portal
Das heisst, wenn ich den String im Array direkt angebe, funktionierts, und auch die RegExp stimmt (erkennbar an der Ausgabe von \\1), aber wenn ich das gefundene Ergebnis der RegExp verwende, erhalte ich einen leeren String.
Also entweder ich sehe den Fehler nicht oder php hat da einen Fehler, schliesslich funktioniert die Zeile in der Template-Engine selbst ja auch
Kann mir jemand weiterhelfen?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat