Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

PHP und HTML kombinieren, ohne endlose echo-Zeilen





Frage

Hallo, ich hab eine PHP Datei, in der ich programmiert hab, welche Variablen angezeigt werden sollen. Mit einem einfachen echo "<table><td>testvariable</td></table>"; konnte ich dann die Daten ausgegeben. Dann fehlte ja noch das Design für die entsprechende Tabelle bzw. für die ganze Seite. Um mich aufs Design zu konzentrieren, hab ich dieses zunächst in einer eigenen tml-datei mit nem included css erstellt. Nun würde ich natürlich gern das Design, das ich in der html-datei entworfen habe, in die PHP-datei einbinden. Dabei frage ich mich, ob ich jetzt jede der hunderten von Zeilen der html-datei mit einem "echo" Befehl ausstatten und die doppelten anführungszeichen mit einfachen Anführungszeichen ersetzen muss, wenn ich sie in die php-datei einfüge oder ob es da nicht einen eleganteren Weg gibt. Kann mir vielleicht jemand weiterhelfen? ? Wie kann ich einen endlangen html-Code in eine php-Datei einfuegen, ohne jede html-zeile mit einem "echo-befehl" auszustatten usw.? Mein Lösungsansatz: Sicherlich kann man aus dem html-code alle doppelten anführungszeichen mit einfachen ersetzen und alles hinter einen echo-Befehl setzen. Aber ich denke, das ist sicherlich nicht DIE Lösung, denn eine echo-Zeile sollte doch eine bestimmte Zeichenanzahl nicht übersteigen oder? Vielen vielen Dank vorab Gruss Mel

Antwort 1 von ClemBra

Es gibt Template-Systeme, die Programmcode und Aussehen komplett trennen. Dabei wird eine Klasse erstellt, in die einigen Variablen werte zugewiesen werden und die am Ende einen entsprechenden Befehl mit der Templatedatei bekommen. "Smarty" wäre z.B. ein mächtiges und zugleich leicht zu bedienenes Werkzeug von php.net. Es gibt aber auch kleinere.
Wenn du die Templates ausschließlich selbst erstellt geht auch folgendes:
in der php-Datei das Template mit einfachem include() einbinden und in dieser die Variablen mittels <?=$variable?> einfügen.

Antwort 2 von DeluxeStyle

geht ganz einfach.

du schreibst deinen normalen html code und wenn du dann php brauchst machst du es so:

<table>
<tr>
<td>
<?php
hier deinen php code eingeben
?>
</td>
</tr>
</table>

Antwort 3 von ClemBra

Bloß nicht, bei größeren Sachen erst alles durchrechnen und das Layout getrennt machen, am besten in getrennten Dateien (leichter austauschbar).
Wenn man alles ineinander knallt geht das zwar bei ganz kleinen sachen, aber kaum hat man was größeres blickt man vorn und hinten nicht mehr durch!

Antwort 4 von Mel

vielen Dank erst einmal für die Antworten.

Zitat:
Wenn du die Templates ausschließlich selbst erstellt geht auch folgendes:
in der php-Datei das Template mit einfachem include() einbinden und in dieser die Variablen mittels <?=$variable?> einfügen.


Ja, das "Template" hab ich selbst erstellt. Ich probiers dann mal am besten mit dem include-Befehl.
In dem Fall müßte ich also in der html-datei die anführungsstriche nicht vorher gegen einfache austauschen, richtig verstanden?

Vielen vielen Dank
Mel

Antwort 5 von ClemBra

also du schreibst die Dateien so, wie normale HTML-Dateien, nur dass sie auf .php enden und Platzhalter (und evtl. For(each)-Schleifen und if-Abfragen; viel mehr aber auch wieder nicht) beinhalten.
Und bevor man im HTML-Text die doppelten gegen einfache Anführungszeichen austauscht, besser für den kompletten echo-Befehl die einfachen nehmen oder die doppelten mittels Backslash maskieren. Von einfachen im fertigen HTML-Code halte ich nichts. (ok, vielleicht etwas persönliche Meinung, aber in allen HTML-Anleitungen, die ich bisher gesehen hab, werden doppelte benutzt)

Antwort 6 von rfb

Zitat:
Design für die entsprechende Tabelle ... Nun würde ich natürlich gern das Design, das ich in der html-datei entworfen habe, in die PHP-datei einbinden.

Seiten-Design über Tabellen? Ich dachte sowas gehört endlich der Vergangenheit (Netscape 4 und IE 4) an. Auch mit PHP lässt sich doch eine vernünftige Trennung von Inhalt (HTML) und Layout (CSS) machen. Es gibt ja wohl keine Regel, dass
echo
nur innerhalb von Tabellen funktioniert.

Antwort 7 von ClemBra

Grundsätzlich sollte man drei Teile trennen: Programmcode (PHP), Struktur (HTML) und Design (CSS).
Aber man kann auch das Design für eine Tabelle festlegen, eben wenn etwas tabellarisch dargestellt werden soll, z.B. eine Forenübersicht o.ä.
Das ganze Layout darüber zu machen ist natürlich nicht empfehlenswert; aber wenn dann so sachen wie "3-Pixel-Bug" und co. ... (den rest spare ich mir)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: