Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP {Variable} (https://www.delphipraxis.net/137574-php-%7Bvariable%7D.html)

youuu 23. Jul 2009 17:35


PHP {Variable}
 
Hi, wie kann ich es bewergstelligen wenn ich per

Delphi-Quellcode:
$nachricht=file_get_contents("nachricht.txt");
und die NAchricht so aus diesen Text besteht:

Email: {email}
Homepage: {homepage}
Telefonnummer: {telefon}
------------------------------------

Nachricht: {nachricht}


das was in diesen klammern steht als Variable erkannt wird?

Die Muhkuh 23. Jul 2009 17:42

Re: PHP {Variable}
 
Du könntest mit str_replace danach suchen und entsprechend ersetzen.

youuu 23. Jul 2009 17:46

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.

Die Muhkuh 23. Jul 2009 17:50

Re: PHP {Variable}
 
Code:
$nachricht=file_get_contents("nachricht.txt");
$nachricht = str_replace('{email}', $email, $nachricht);
In $email steht der Inhalt drin, der nachher in der Nachricht drin stehen soll.

generic 23. Jul 2009 17:55

Re: PHP {Variable}
 
du solltest eine Templateengine nehmen, das ist performater als ein Replace.

Smarty und PEAR:DB - das DreamTeam

Im aktuellen PHP User Magazin ist auch gerade ein neuerer Artikel über das Thema von mir.

youuu 23. Jul 2009 17:59

Re: PHP {Variable}
 
Nur wie mach ich dies variable, so das ich das nicht hundert mal hinter einander setzen muss?

Dax 23. Jul 2009 18:00

Re: PHP {Variable}
 
Mit einer Schleife.

youuu 23. Jul 2009 18:02

Re: PHP {Variable}
 
Zitat:

Zitat von generic
du solltest eine Templateengine nehmen, das ist performater als ein Replace.

Smarty und PEAR:DB - das DreamTeam

Im aktuellen PHP User Magazin ist auch gerade ein neuerer Artikel über das Thema von mir.

Hierbei geht es eigentlich lediglich um ein Kontaktformular, ich denke das wäre dann soetwas wie mit Kanonen auf Spatzen schießen oder irre ich mich da?

jfheins 23. Jul 2009 18:03

Re: PHP {Variable}
 
Ich habe das so gelöst:
Code:
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 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.
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.

youuu 23. Jul 2009 18:04

Re: PHP {Variable}
 
Zitat:

Zitat von Dax
Mit einer Schleife.

Das ist mir klar nur wie genau? ;)

das hab ich


Code:
                foreach(???)
      {
         $nachricht=str_replace("{" ??? "}",${"???"},$nachricht);
      }


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 Uhr.
Seite 1 von 2  1 2      

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