![]() |
PHP {Variable}
Hi, wie kann ich es bewergstelligen wenn ich per
Delphi-Quellcode:
und die NAchricht so aus diesen Text besteht:
$nachricht=file_get_contents("nachricht.txt");
Email: {email} Homepage: {homepage} Telefonnummer: {telefon} ------------------------------------ Nachricht: {nachricht} das was in diesen klammern steht als Variable erkannt wird? |
Re: PHP {Variable}
Du könntest mit str_replace danach suchen und entsprechend ersetzen.
|
Re: PHP {Variable}
Das habe ich mir auch gedacht, nur in was muss ich es ersetzen damit php es als Variable erkennt?
Das sind meine ersten php Versuche ;) Als ich in der txt direkt $variable geschrieben habe, wurde dies nicht als variable erkannt. |
Re: PHP {Variable}
Code:
In $email steht der Inhalt drin, der nachher in der Nachricht drin stehen soll.
$nachricht=file_get_contents("nachricht.txt");
$nachricht = str_replace('{email}', $email, $nachricht); |
Re: PHP {Variable}
du solltest eine Templateengine nehmen, das ist performater als ein Replace.
![]() Im aktuellen PHP User Magazin ist auch gerade ein neuerer Artikel über das Thema von mir. |
Re: PHP {Variable}
Nur wie mach ich dies variable, so das ich das nicht hundert mal hinter einander setzen muss?
|
Re: PHP {Variable}
Mit einer Schleife.
|
Re: PHP {Variable}
Zitat:
|
Re: PHP {Variable}
Ich habe das so gelöst:
Code:
Das ist eine Funktion zum parsen von templates. Im Template steht dann sowas wie {tpl|sitename} was dann ersetzt wird falls der Wert im Array auftaucht.
function parse_tpl ($templates, $values = array())
{ if (!is_array ($templates)) { $templates = explode (',', $templates); } foreach ($templates as $template) { @ $tpl_text .= "\r\n\r\n" . file_get_contents($_SESSION['tplpath'] . $template . '.tpl'); } $GLOBALS['tpl_resarr'] = $values; $tpl_text = preg_replace ('/\{tpl\|(.+?)\}/e', '$GLOBALS[\'tpl_resarr\'][\\1];', $tpl_text); unset ($GLOBALS['tpl_resarr']); echo $tpl_text; } parse_tpl ('header,menu', array ('sitename' => $sitename)); das mit dem tpl| hatte ich vorgesehen, um auch im template noch geschweifte Klammern verwenden zu können (falls da z.B. noch Javascript drin ist) Die ersetzung erfolgt durch preg_replace, was in meinen Augen besser geeignet ist als str_replace, da man den regulären Ausdruck relativ einfach erweitern/anpassen kann. |
Re: PHP {Variable}
Zitat:
das hab ich
Code:
foreach(???)
{ $nachricht=str_replace("{" ??? "}",${"???"},$nachricht); } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz