Php / HTML trennen

Hallo, bin noch relativ neu auf diesem Gebiet und hab deshalb auch ne Frage, die vermutlich leicht zu beantworten ist :)
Wenn ich auf einer Seite HTML und PHP mische, sieht das sehr verwirrend aus, vorallem wenns mehrere hundert Zeilen sind. Deshalb möchte ich den HTML Code und den PHP Code trennen. Ich weiss aber nicht ob das geht, ich stells mir so vor:

Code:
<html>
<head>
#include <php_code.php>
</head>

<body>
<table>
	<tr>
		<td>coutname()</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td></td>
	</tr>
</table>
</bod>
</html>

Code:
//PHP-TEIL
<?
coutname()
{
echo "hehe";
}
?>


Ich hoffe, aus den Codebeispielen versteht man, was ich meine. Hab in PHP noch nicht mit Funktionen gearbeitet, aber sollte so glaub schon in etwa richtig sein, den Funktionsaufruf in HTML hab ich erfunden, also die Syntax.

LIebe Grüsse,
hehe
 
Vielleicht hilft dir das Stichwort "Templates". Da gibt's auch schon einige vorgefertigte Systeme. Ein weit verbreitetes und beliebtes Templatesystem für PHP ist z.B. Smarty.
 
Original von LX
Vielleicht hilft dir das Stichwort "Templates". Da gibt's auch schon einige vorgefertigte Systeme. Ein weit verbreitetes und beliebtes Templatesystem für PHP ist z.B. Smarty.
Hatte er etwa nach Templates gefragt? Oder würden sie ihm bei der Trennung von PHP und HTML helfen? Wohl kaum. Vielleicht will er sich mit PHP und HTML auseinandersetzen. Zwar könnte er aus Templates lernen, aber dort ist der PHP und HTML Code auch gemischt und für einen Anfänger würden Templates sehr kompliziert sein, sie zu verstehen.

@LX
Das würde gehen, aber zudem sehr viel Arbeit bedeuten, denn du müsstest für jedes bisschen PHP-Code eine neue PHP-Datei anlegen und da könntest du die Übersicht verlieren.
Aber sehr sinnvoll ist deine Methode dann, wenn du einen bestimmten Script in mehreren HTML-Seiten benötigst. Z.B. nehmen wir mal die Ausgabe, hier würde sich anbieten über einer Variablen etwas Auszugeben. Die Variable kannst du dann aus einer anderen Datei übergeben lassen.
 
Bin auch noch eher PHP Anfänger also korrigiert mich wenn ich mich irre.

Du könntest den PHP-Code in eine externe Datei auslagern und dann per include einbinden.

Du musst nur aufpassen, dass du eine geordnete Ordnerstruktur hast damit du duch zurecht findest! Ich weiss nur nicht was passiert wenn du das gleiche Script ein paar mal gleichzeitig aufrufst oder Variablen übergeben willst, aber eigentlich sollte es da keine größeren Probleme geben
 
Original von Prometheus
Hatte er etwa nach Templates gefragt? Oder würden sie ihm bei der Trennung von PHP und HTML helfen? Wohl kaum.
Ich würde an dieser Stelle einen berühmten Satz von Dieter Nuhr zitieren, aber schätze mal, damit würde ich mir keine Freunde machen. Aber vielleicht kann ich mit Wittgenstein punkten: "Wovon man nicht sprechen kann, darüber muss man schweigen". :)

Ich fürchte einfach mal, du hast keine Ahnung, was Templates bedeuten, ansonsten hättest du wohl kaum die wirre Behauptung aufgestellt, dass sie nicht dabei helfen, HTML von PHP zu trennen (denn genau das ist der Zweck von Templates). Untermalt wird das von Aussagen wie "du müsstest für jedes bisschen PHP-Code eine neue PHP-Datei anlegen", die schlicht und ergreifend völliger Murks sind.

Die Verwendung eines Template-Systems wie Smarty setzt natürlich voraus, dass man sowohl in HTML als auch in PHP einigermaßen firm ist. Dazu können besagte Tutorials helfen, das bei tut.php-q.net hat sogar einen eigenen Abschnitt zu Smarty.
 
@LX

Danke, ist genau das, was ich gesucht habe. Scheint zwar _etwas_ kompliziert zu sein, aber werd ich schon hinkriegen :)
Werd mich melden wenn ich fragen hab :)
 
Code:
<html>
<head>
#include <php_code.php>
</head>

<body>
<table>
	<tr>
		<td>coutname()</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td></td>
	</tr>
</table>
</bod>
</html>

Da sind doch mind. 2 Fehler drin
 
PHP:
<html>
<head>
<? include ("php_code.php"); ?>
</head>

<body>
<table>
	<tr>
		<td><? coutname(); ?></td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td></td>
	</tr>
</table>
</bod>
</html>

PHP:
<?
//PHP-TEIL
function coutname()
{
echo "hehe";
}
?>

Nicht nur 2 ;) Sah für mich nach einen C-Dialekt aus.
 
Also ein Tamplatesystem - insbesondere smarty - eignet sich sehr wohl, um HTMl von PHP zu trennen. aber gerade für anfänger ist es doch recht kompliziert, die php scripte und die html ausgabe so explizit zu trennen.

Ich würde an deiner stelle damit anfangen, ein system in meine php dateien zu bekommen. Und zwar oben wir alles verarbeitet, was mit php abgearbeitet werden muss. und evtl. rückgabewerte in variablen gespeichert. und im unteren teil kommt dann nur die ausgabe in html unter verwendung der oben definierten variablen.

Hier wird es dir am anfang immer wieder passieren, dass du das ganze vermischt.. sprich php anweisungen im unteren teil, und ausgaben im oberen teil.
So kanst du dich langsam an templatesysteme rantasten.
 
Original von Ar-ras
Code:
<html>
<head>
#include <php_code.php>
</head>

<body>
<table>
	<tr>
		<td>coutname()</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td></td>
	</tr>
</table>
</bod>
</html>

Da sind doch mind. 2 Fehler drin
Ich hab geschrieben, dass der Code "erfunden" ist, ist also so quasi pseudo-code. Wenn du schon postest dann schreib was richtiges und les dir das geschriebene durch!
Sorry ist hart, aber sowas regt mich auf!

@fetzer
Das gleiche wie @ Ar-ras, aber du hast recht, eigentlich bin ich ein C++ianer :)


@flame
Ja, so kann ichs auch versuchen. Aber hab mir dieses Templat-Tutorial mal angesehen und es sieht eigentlich nicht sondcherlich schwierig aus...werds dann mal abarbeiten :)
 
@LX

Ich muss mich leider der Meinung von Prometheus anschließen.
Das lernen von Templates sehe ich als auch nicht geeignet an (besonders für Anfänger).
Es gibt ja einige gute Tutorials und Bücher die man mal zu dem Thema lesen kann.

Außerdem finde ich persönlich Dein zitieren von Diether Nuhr als nicht angebracht, da solche Äußerungen nur dazu führen, dass Member sich bald Ihrer Meinung enthalten und das Board nur noch aus "Prolls" besteht.

Meine ganz eigene und persönliche Meinung zu dem Thema !
 
Original von $oul
Er hat Dieter Nuhr nicht zitiert.
öhm...langeweile?
---

Ich wollte noch fragen, wie ihr das macht? Mischt ihr HTML/PHP oder macht ihrs mit Templates oder gibt es noch ne andere möglichkeit? Ich kann einfach nicht glauben, dass es da keine einfachere möglichkeit gibt, so wie ich sie oben dargestellt hab...also ohne noch irgendwleche Programme zu installieren oder so...
 
Ich selbst nutze Smarty, zumindest für größere Sachen. Bei kleineren stört's mich nicht so, wenn HTML und Code vermischt sind.

Smarty ist übrigens nur ein Beispiel. Wenn dir das System zu kompliziert ist, kannst du dich auch an einem eigenen Templatesystem versuchen (was aber als Einstieg in die PHP-Programmierung nicht unbedingt geeignet ist). Vielleicht findest du auch noch alternative Systeme, wenn du die Suchmaschine deiner Wahl mal mit "php template engine" fütterst. Vom Prinzip her werden die aber insofern ähnlich sein, als dass du in den HTML-Code nur Platzhalter einfügst, die dann von PHP ersetzt werden.
 
Original von LX
Vom Prinzip her werden die aber insofern ähnlich sein, als dass du in den HTML-Code nur Platzhalter einfügst, die dann von PHP ersetzt werden.
Ja, und das ist ja genau das, was ich will :) Deshalb werd ich smarty genauer anschauen und verschiedenste Suchmaschinen füttern :)

Ach ja, kennt grad einer gute, englischsprachige Computerboards?
 
@hehe,
erstmal können wir php und html, deswegen brauchen wir uns auch keinen kopp um pseudocode zu machen. Wenn du c++ianer bist dann mach cgi/perl vielleicht fühlst du dich dort wohler, aber erspare wenigstens mir deine miese CodeSchreibweise.

Wenn du php könntest, dann wären für dich Codevermischungen nicht schwer.

Wenn du mal Hilfe brauchst, z.B. bei php-Fehlermeldungen, dann geben wir dir bestimmt auch ne Menge Syntax, sodass du selber rätseln kannst wie dass dann in richtigem PHP-Code ist

:rolleyes:
 
Zudem gibts ja schließlich auch Editoren mit Syntaxhightlighting, wo man schnell sieht ob man was von der Syntax her falsch gemacht hat. Mit einem solchen Editor lässt sich auch schnell der PHP Code hervorheben und den HTML Code ausgrauen und natürlich auch anders rum^^.

gruß
 
Original von LX
Original von Prometheus
Hatte er etwa nach Templates gefragt? Oder würden sie ihm bei der Trennung von PHP und HTML helfen? Wohl kaum.
Ich würde an dieser Stelle einen berühmten Satz von Dieter Nuhr zitieren, aber schätze mal, damit würde ich mir keine Freunde machen. Aber vielleicht kann ich mit Wittgenstein punkten: "Wovon man nicht sprechen kann, darüber muss man schweigen". :)

Ich fürchte einfach mal, du hast keine Ahnung, was Templates bedeuten, ansonsten hättest du wohl kaum die wirre Behauptung aufgestellt, dass sie nicht dabei helfen, HTML von PHP zu trennen (denn genau das ist der Zweck von Templates). Untermalt wird das von Aussagen wie "du müsstest für jedes bisschen PHP-Code eine neue PHP-Datei anlegen", die schlicht und ergreifend völliger Murks sind.

Die Verwendung eines Template-Systems wie Smarty setzt natürlich voraus, dass man sowohl in HTML als auch in PHP einigermaßen firm ist. Dazu können besagte Tutorials helfen, das bei tut.php-q.net hat sogar einen eigenen Abschnitt zu Smarty.

Wenn du glaubst, das du der ultimative Profi in der Sache bist, dann bitte. Aber nicht in dieser Art. Falls du wirklich Anfängern helfen willst, dann solltest du dich schon in ihnen hineinversetzen können, was du wahrscheinlich eher nicht kannst, denn Templates sind überhaupt nicht für Anfänger gedacht, wenn diese es Verstehen wollen.

@stone.dr
Danke
 
Jungens... regt euch mal wieder ab und mault euch nicht an.

@Prometheus:
Wenn du schreibst, er hätte nicht nach Templates gefragt, dann hast du entweder das Thema falsch gelesen oder weisst einfach nicht was Templates sind. Die Schlüsse kannst du daraus ziehen, denn Templates sind in der Webprogrammierung sind die einzige gute Möglichkeit, Code vom Rest zu trennen. Und dannach hat er schliesslich auch gefragt. Ob Templates jetzt schwer und einfach sind, bleibt dem Einzelnen überlassen. Ich persönlich finde ein Templatesystem wie Smarty einfach und auch für Anfänger gut verständlich. Sicherlich auch deswegen, weil es zig-tausend Tutorials dafür gibt.
Natürlich war LX' Antwort nicht die schönste, geb ich ja auch zu, aber sich deswegen so aufzuregen ist die Sache nicht wert.
Zu stone.drs Antwort will ich nichts sagen, da die NICHTS zum thema beiträgt oder beigetragen hat.

@haha
sry wegen dem Code verbessern.. hab eigentlich nur auf Ar-ras Post geachtet. Auch egal ;)

Es gibt noch ne einfache Möglichkeit, die meiner Meinung einfacher ist, als Smarty: Es gibt ein modul für PHP namens php_templates. Hier mal n Link dazu: http://www-lehre.inf.uos.de/~dbs/2005/php-templates/php_templates-eng.html

Bei Interesse einfach mal ausprobieren ;)
 
Zurück
Oben