Felix Riesterer: einfache PHP-Frage

Beitrag lesen

Lieber Joachim,

...eigentlich funktioniert ja soweit alles, bis auf die ausgabe, denn, der Text vom echo wird ja (logischerweise) vor dem ganzen <html> etc. ausgegeben... - Nun hätte ich gerne, dass dieser innerhalb des <div></div> bereiches ausgegeben wird.

was hindert Dich denn daran, eine Variablen $meldung zu definieren, in die Du den in der core.php erzeugten Output ablegst, damit der dann in der PHP/HTML-Datei an entsprechender Stelle ausgegeben werden kann?

(Möchte nämlich php und html klar getrennt haben... was später auch das arbeiten mit header() etc. erleichtert.)

Dann solltest Du noch konsequenter vorgehen, und eine echte Template-HTML-Datei anlegen, in der Du dann Inhalte entsprechend "einpflanzt".

Vorschlag:

core.php
--------

<?php  
  $titel = "";  
  $content = "";  
  $meldung = "";  
  $daten_datei = "pfad/zur/dat-datei.dat";  
  $html_template = "pfad/zur/html-template-datei.html"  
  
  if(filesize($daten_datei) == 0) //ich weiß, nicht der beste weg, aber nur mal als test  
  {  
   $meldung = "<p id="meldung">Datei leer.</p>";  
  }  
  
  $html_output = implode("", file($html_template));  
  
  // hier machst Du nun was mit Deiner Dat-Datei:  
  //  $content = ....  
  // und baust auch schön $meldung mit ein!  
  // schön wäre auch, wenn Du den Titel dynamisch hättest...  
  //  $titel = ...  
  
  $html_output = str_replace('$$content$$', $content, $html_output);  
   // hier musst Du wegen der $$ einfache Anführungszeichen verwenden!  
  $html_output = str_replace('$$titel$$', $titel, $html_output);  
  
  // falls noch spezielle Header wären - jetzt wäre der Moment gut.  
  
  echo $html_output;  
?>

template.html
-------------

<html>  
<head>  
<title>$$title$$</title>  
</head>  
<body>  
 <div id="main">$$content$$</div>  
</body>  
</html>

Liebe Grüße aus Ellwangen,

Felix Riesterer.