# Saubere Trennung von HTML und PHP



## PsychoSam (28. Dezember 2003)

*Saubere Trennung HTML/PHP*

Hallo
Ich wollte fragen, ob es ein Tutorial exisitiert, in dem man eine strikte Trennung zwischen HTML und PHP (natürlich unter Verwendung von Templates) sowie saubere Strukturierung  vorgeführt wird. Mein Problem ist, dass zwar meistens alles funktioniert wie ich will, jedoch artet mein Code so sehr aus, dass er für andere unlesbar wird, d.h da php, da wieder etwas HTML, da wieder PHP. Leider bekomm ich ihn nie so sauber hin, wie z.b bbp board, wo eine strikte Trennung erfolgt.
Danke für eure Hilfe


----------



## Neurodeamon (28. Dezember 2003)

Bitte die Boardsuche bequemen. Die hat nämlich nicht viel zu tun und langweilt sich, wenn sie nicht ausgereizt wird.

Das Template-Thema haben wir schon öfter im Board gehabt!
Unter anderem gibt es ein Tutorial in der Tutorials Sektion.

Greets,
Neuro


----------



## PsychoSam (28. Dezember 2003)

Hi
danke für deine antwort
aber ich glaube du hast mich missverstanden
ich wollte ken template tutorial sondern ein tutorial, das einem zeigt wie man es schafft unter verwendung von template php und html zu trennen
also sauber
also z.b wie man um geht in den .tpl dateien php einzubauen
gewisse mittel und wege die es sicherlich gebt 

ps: ich hab gesucht aber spezifisch das was ich wollte hab ich net gefund 
mfg alex


----------



## fungo (29. Dezember 2003)

wer braucht schon Templateengines mit php

Beschäftige  dich mal mit dem Thema XML/XSL und der Transformation mit XSLT, dass ist genausogut und ein offener Standart.


----------



## Neurodeamon (30. Dezember 2003)

> _Original geschrieben von PsychoSam _
> *Hi
> danke für deine antwort
> aber ich glaube du hast mich missverstanden
> ...



Also, ich weiß nicht genau was Du jetzt genau möchtest. Man macht Schritte von A nach B zu C und versucht nicht von A nach C zu kommen.

Es gibt jetzt mittlerweile die x-ten Ansätze zu dem Thema, jede Template-Engine macht das anders. Wenn Du ein Templatesystem lernst, z. B. Smarty o. ä. wirst zu vermutlich genau das erreichen, was Du möchtest. Aber DIE Lösung gibt es leider nicht. Es gibt zu viele Ansätze.

P.S.: War nicht böse gemeint  =)

Greets,
Neuro


----------



## Daxi (30. Dezember 2003)

Ich bin derzeit auch mit Templates beschäftigt.
Dann habe ich mich einige Stunden im Internet umgeschaut.
Leider passte mir so gut wie keine Template Engine.
Smarty geht wegen dem Safe Mode nicht (auf dem Server aktiviert). Andere haben genau eine Funktion zu wenig wie das KTemplate. Da fehlt mir das include.

Hab mich jetzt mal etwas hingesetzt und selber eine Klasse geschrieben.
Ist ganz simpel aber wirkungsvoll...

Ich würde mich über einen Kommentar oder Verbesserungsvorschläge freuen...

Das System ist gröstenteils ein preg_replace...
Man kann ja einiges damit anfangen ;-)...

*edit:*
Das soll für euch mein kleines Geschenk zum neuen Jahr oder nachträglich zu Weihnachten sein *g*...

*Meine Template-Engine (DTemplate) in der Version 0.1 (alpha):*
Größe:
ZIP (mit Readme, 2 Klassen-Files, Beispiel): 4,04 KB
Lite-Klasse (ohne Timer): 1,89 KB
Normale Klasse: 2,38 KB
Also wirklich nicht groß *g*


----------



## CrushLog (16. Juni 2005)

*Re: Saubere Trennung HTML/PHP*

Hi, ich muss den Thread mal aus der Versenkung holen.

Ich hab mich nun auch mal rangetraut an das Thema Templates, und hab das Script hier mal als Vorlage genommen, und erstmal ein bisschen rumprobiert.
Nun hab ich aber mal eine Frage.
Wenn der Code geparsed und dann wieder zurück gegeben wird, werden die " escaped, wie kann ich das umgehen?

Danke schon mal,

//Ben


----------



## Jörg Rißmann (16. Juni 2005)

*Re: Saubere Trennung HTML/PHP*

mit [phpf]stripslashes[/phpf]


----------



## CrushLog (16. Juni 2005)

*Re: Saubere Trennung HTML/PHP*

Oh man...
na genau das hab ich gesucht, hät mir ja auch einfallen können, dank dir :>


----------



## Jörg Rißmann (16. Juni 2005)

*Re: Saubere Trennung HTML/PHP*

Kein Problem, macht zweifuffzig


----------



## Neurodeamon (16. Juni 2005)

*Re: Saubere Trennung HTML/PHP*

Plus fuffuffzig für's Herauskramen des Threads  :suspekt:


----------



## CrushLog (5. April 2006)

Ich muss den Thread doch glatt noch mal aus der Versenkung holen 
Ich hab damit noch ein kleines Problem.
Beim parsen der templates wird ja strikt einfach nur alles ausgegeben, aber ich würde nun gerne php mit in ein Template einfügen, sprich innerhalb eines templates <? include(".."); ?> ausführen können.
Wenn ich nun auf welche Art auch immer versuche das zu machen, schreibt er das einfach nur hin.
Ich hoffe ich hab mich klar genug ausgedrückt :/

Wäre nett, wenn mir da einer Hilfestellung zu geben könnte!

Wie immer danke im voraus 

//Ben


----------



## Gumbo (5. April 2006)

Du musst dafür sorgen, dass das Template vom PHP-Interpreter als PHP behandelt wird. In welcher Form liegt denn dieses Template vor und wie wird es verarbeitet?


----------



## CrushLog (5. April 2006)

Das Script ist ja oben zu sehen, wie es interpretiert wird. Das Template wird ausgelesen und wieder ausgegeben, wie auch immer genau. Es scheint egal zu sein, ob ich das Template als php oder html oder tpl oder sonst was abspeicher.
Hast du eine Idee, wie ich ihn dazu bringe, dass es vom Interpreter richtig interpretiert wird?


----------



## Gumbo (5. April 2006)

Du könntest mit den Funktionen zur Ausgabesteuerung arbeiten, etwa:
	
	
	



```
ob_start();
include 'foobar';
$content = ob_get_clean();
str_replace('foobar', $content, $string);
```
Dadurch könnten allerdings auch vorhandene Variablen überschrieben werden. Also musst du vorsichtig sein.


----------



## CrushLog (6. April 2006)

Danke, ich werd mich damit mal rumporbieren, obwohl ich damit noch nicht gearbeitet hab :/


----------



## erik s. (9. April 2006)

Nabend.

Solltest eventuell mal deinen Templatecode posten und uns auch mitteilen, was denn genau geht bzw. nicht geht, also ob der Parser eine Fehlermeldung ausgibt oder etwas falsch ausgegeben wird.

MfG Erik


----------



## erik s. (9. April 2006)

Probier mal

```
while($array = $db->fetchAssoc())
{
    $entries[] = $array;
}
$tpl = new DTemplate; 
$tpl->assignLoop("entries", $entries); 
echo $tpl->parse("", "test.tpl");
```

MfG


----------

