HTML code von php trennen? Aber wie? Bitte um hilfe.

Grave-Digger

Banned
Registriert
Juni 2005
Beiträge
253
Hallo.

Ich hab ein großes problem. Ich krieg meinen html code nich sauber von php getrennt. Ich bräuchte hilfe von euch.

Hier mal der code: ( funzt irgendwie nich ) :p

PHP:
<?php
		  require('config.php');
		  $title = "News Anzeigen von ID: $id";
		  echo "<title>$title</title>";
		  if(is_numeric($_GET['id'])){
		 	$result = mysql_query("SELECT id,titel,text,newsimg,autor from news WHERE id = $id") or die (mysql_error());
			  $anzahl = mysql_num_rows($result);
			  while($row = mysql_fetch_array($result)){
				  $id = $row['id'];
				$titel = $row['titel'];
				$text = $row['text'];
				$autor = $row['autor'];
				
				$ausgabe_inhalt = 'template/news/nshow.htm';
				$ausgabe = (include $ausgabe_inhalt);
				print $ausgabe;
			  }
			  print '
<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"comment1\">
<!--DWLayoutTable-->
<tr>
<td width=\"1245\" height=\"23\" valign=\"top\" background=\"img/comment.jpg\"><strong>Kommentare</strong></td>
</tr>
</table>
';
			  include('comments.php');
		 	print '<div align=\"center\"><a href=\"news_new.php\">Zurück</a></div><br>';
		  }
		  ?>
Könntet ihr mir erklären wie ich ohne eine template engine sauber trennen kann? ( Html / PHP ) ? :)

// PS:

Wie kann ich einen Text auf die Länge von 200 Zeichen Kürzen? Ich bin grad zu blöd. Steh auf da Leitung :freak:
 
Zuletzt bearbeitet:
echo HTML_CODE;

Oder was ist dein Problem? Außerdem würde ich jede Zeile in einem extra-echo Befehl schreiben.

PHP:
echo "<table>\n";
echo "    <tr>\n";
echo "        <td>\n";
echo "        </td>\n";
echo "    </tr>\n";
echo "</table>\n";

Da du aber in der Ausgabe eh keinen PHP Code benutzt, kannst du auch einfach den PHP Scriptteil mit ?> schließen und dann ganz einfachen HTML Code schreiben ohne " escapen zu müssen. Wenn du wieder PHP Code schreiben willst, dann schreibst du einfach wieder <?php

KoЯn
 
PHP:
$ausgabe_inhalt = 'template/news/nshow.htm';
$ausgabe = (include $ausgabe_inhalt);
print $ausgabe;
Meine seite gibt mir da eh nur schrott aus :-( dat geht halt nich :-)

Ich würde halt gerne meine ganzen HTML datein in einen ORDNER HTML speichern und dann wenn ich sie brauche an den wichtigen stellen, über einen Template engine einbinden.

Ich suche und suche und versuche und Teste, aber irgendwie kommt dabei nixs raus! Ich will meine html datein komfortabel editieren können und meinen PHP scripte ohne html im code bearbeiten können.

Mich würde die TEMPLATE engine vom Woltlab Burning board 2 interessieren. :o
 
Zuletzt bearbeitet:
Also willst du einfach nur Dateien einbinden?

PHP:
include(datei.html);

KoЯn
 
Ahso ja aber ich will das das in einer Variable abrufen und mit print ausgeben :p
 
dann sieht das ganze so aus:

http://www.itpro-forum.de/1/news_full_comments.php?newsid=24

er macht meinen ganzen anderen schrott nichmehr

PHP:
          <?php
          require('config.php');
          $title = "News Anzeigen von ID: $id";
          echo "<title>$title</title>";
          if(is_numeric($_GET['newsid'])){
              $result = mysql_query("SELECT id,titel,text,newsimg,autor from news WHERE id = $newsid") or die (mysql_error());
              $anzahl = mysql_num_rows($result);
              while($row = mysql_fetch_array($result)){
                  $newsid = $row['id'];
                $titel = $row['titel'];
                $text = $row['text'];
                $autor = $row['autor'];
                
                $ausgabe = file_get_contents('templates/news_1.htm');
                print $ausgabe;
              }
              print '
<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"comment1\">
<!--DWLayoutTable-->
<tr>
<td width=\"1245\" height=\"23\" valign=\"top\" background=\"img/comment.jpg\"><strong>Kommentare</strong></td>
</tr>
</table>
';
              include('comments.php');
              print '<div align=\"center\"><a href=\"news.php\">Zurück</a></div><br>';
          }
          if($_GET['mode']=='next'){
              }
          ?>
 
Code:
print '<div align=\"center\"><a href=\"news.php\">Zurück</a></div><br>';

Wann immer du einfache Anführungszeichen benutzt, musst (bzw. darfst) du die doppelten im HTML Code nicht escapen (mit den \).
 
und Text gehört eigentlich nicht in ein div sondern ein span oder p Element
 
Je nachdem, wieviel HTML Code verwendet wird, würde ich dann bei viel Code einfach die PHP-Bearbeitung mit ?> schließen und nach dem HTML Code wieder mit <?php öffnen.
Ansonsten wie die anderen schon gesagt haben.
 
Des is mir zu unübersichtlich!!!!!
 
Bau dir doch einfach dein eigenes kleines Template-System:

HTML-Datei mit speziellen Schlüsselwörtern versehen, die später durch das PHP-Script ersetzt werden
das PHP-File lädt dann die HTML-Datei, ersetzt die Schlüsselwörter durch ihren aktuellen Wert und gibt das HTML-Dokument aus

viel mehr als fopen() bzw. fclose(), str_replace() und echo() brauchst du dazu nicht ;)
 
Ich will aber einen richtigen TEMPLATE PARSER Schreiben. Keine Smarty Engine sondern einen template parser
 
ich wills so machen wie im wbb board ;)

z.B
PHP:
eval ("\$newthread = \"".$tpl->get("board_newthread")."\";");
 
also diese eine Zeile macht jetzt aber nichts besonders tolles: eval()
 
Zurück
Oben