php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2006, 00:50  
Benutzer
 
Registriert seit: 03.04.2005
Beiträge: 36
ClaBo3
ClaBo3 eine Nachricht über ICQ schicken ClaBo3 eine Nachricht über AIM schicken
Standard Auskommentierung von HTML zeichen.

Ich bin mir nicht sicher wo das hingehört...

Ich möchte ein Template System schreiben das so funktioniert.
Es existieren die Dateien "header_default.php" und "footer_default.php".
In beiden Dateien ist ein abschnitt mit PHP und ein Layout Code.
Abgetrennt durch
und
Die Layoutcodes sind komplet in HTML ohne einen "echo" befehl davor.
Jetzt möchte ich das das Script die Seiten einliest und ausgibt.
Hierzu benutze ich folgendes Script:

[code]
<?php
$f1=fopen("./base/templates/header_default.php","r");
$f2=fopen("./base/templates/footer_default.php","r");
$header="";
$footer="";
$z1=true;
while($z1){
$z1=fgets($f1,100);
$header.=$z1."\n";
}
$z2=true;
while($z2){
$z2=fgets($f2,100);
$footer.=$z2."\n";
}
$header=explode("",$header);
$header2=explode("",$header[1]);
$header2=str_replace('<? show_menu(0,0);?>',"_NAVI_",$header2);
$header2=str_replace('<? echo $userlinks; ?>',"_LOGIN_",$header2);
$header2=str_replace('<? echo $page_title; ?>',"_PAGE_TITEL_",$header2);

$footer=explode("",$footer);
$footer2=explode("",$footer[1]);
$footer2=str_replace('<? echo $submenu;?>',"_SUBMENU_",$footer2);


if($user_permissions[admin] == 1 || $user_permissions[coadmin] == 1) {

$page_title="Template System
__________________
buuh
ClaBo3 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.01.2006, 18:03  
Gast
 
Beiträge: n/a
Standard

stripslashes() oder sowas ?
  Mit Zitat antworten
Alt 16.01.2006, 11:50  
Benutzer
 
Registriert seit: 03.04.2005
Beiträge: 36
ClaBo3
ClaBo3 eine Nachricht über ICQ schicken ClaBo3 eine Nachricht über AIM schicken
Standard

k... jetzt setzt er aber immernoch nicht _NAVI_ um... muss ich bei "str_replace()" was beachten, wenn ich Funktionen in PHP einsetzen will?

Also:
Code:
<?php
str_replace("_NAVI_","<?php showmenu(0,0);?>",$header);
?>
__________________
buuh
ClaBo3 ist offline   Mit Zitat antworten
Alt 16.01.2006, 12:07  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Du öffnest die Header-Datei und kopierst den Inhalt in eine Variable (übrigens sehr umständlich; ein file_get_contents() würde reichen). Jetzt erstezt du in dieser Variable ein paar Werte und bindest die Datei, der die Daten entspringen ein und erwartest, dass die Änderungen an deinem Variablen-Wert nun die Datei geändert haben (bzw. auch nicht, denn du gehst ja davon aus, dass du diesen Schritt jedes mal wiederholen musst).

Also entweder, du schreibst die geänderten Daten in eine temp. Datei (siehe das Cache-System von Smarty) oder du benutzt eval(), um das Template-Skript aus der Variable heraus ablaufen zu lassen.

Andere Ansätze wären z.B., die Ausgabe der einzubettenden Elemente vorab zu generieren und dann eben deine Tags (__NAV__ etc.) direkt durch die Ausgabe zu ersetzen. Oder du benutzt preg_replace_callback(), um die Tags weder durch PHP-Code, noch durch fertige HTML-Komponenten zu ersetzen, sondern quasi durch Methodenaufrufe, die dir die Ausgabe machen.

Den PHP-Code, der in deinem Template steht, der lässt sich auch auslagern, denn entweder kannst geht es dort darum, die im Template benötigten Werte zusammenzustellen. Dann solltest du diesen Mechanismus vereinheitlichen, so dass alle Templates auf das gleiche Interface zugreifen. Oder er enthält Business-Logik und dann hat er dort eh nichts verloren, denn dort würde ja u.A. entschieden, welches Template eingebunden werden soll. Es wäre also unsinnig, diesen direkt an das Template zu knüpfen, wenn noch nichtmal klar ist, dass dieses überhaupt eingebunden werden soll.

Zurück zu den Ersetzungen:
Wenn du eh schon nur so rudimentäre Funktionen benutzt (letztlich nur ein Include aus dem Template heraus), dann kannst du doch auch gleich PHP in dein Template reinschreiben. Andernfalls, wenn das komplexer werden soll und du Platzhalter, Bedingungen, Schleifenkonstrukte etc. einbauen willst, dann nimm doch lieber gleich Smarty. Diese Template-Engine funktioniert ja genau nach dem Prinzip, Smarty-Tags durch PHP-Code zu ersetzen und dies Template mit PHP-Code dann einzubinden.

Basti

PS:
Setze mal dein error_reporting hoch! Es ist für deine Arbeit sicher nicht förderlich, die Ausgabe von Parser-Meldungen zu unterdrücken.
Basti ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Benutze Zeichen anzeigen! cokotech Datenbanken 3 06.06.2008 18:24
[Erledigt] HTML Mail mit Lücken mitten in den Worten, wie kommt das? DeeFour PHP-Fortgeschrittene 2 29.05.2008 15:47
erste 7 zeichen überprüfen aircrash PHP Tipps 2008 1 28.09.2007 09:11
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
var_dump bei HTML Zeichen dh1sbg PHP Tipps 2007 3 06.03.2007 12:12
HTML Zeichen in einem bestehendem XML Dokument umwandeln PHP Tipps 2006 33 24.03.2006 17:33
Unsichtbares Zeichen - IE vs. Firefox Cyberbob_at_tot PHP Tipps 2006 13 13.02.2006 17:23
&amp;amp;amp;lt;if&amp;amp;amp;gt; &amp;amp;amp;lt;/if&amp;amp;amp;gt; in einer HTML Datei fuer Templ PHP-Fortgeschrittene 6 03.11.2005 12:05
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
Die 1. 15 Zeichen anzeigen imported_Lumio PHP Tipps 2004 2 23.08.2004 16:16
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27
[Erledigt] PDF aus HTML erzeugen ? PHP-Fortgeschrittene 2 05.06.2004 02:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html,auskomment, html unsichtbares zeichen, smarty zeichen auskommentieren, html auskommente, smarty zeichen ersetzen, auskommentierung, auskommentierung html, php preg_match < ersetzen &lt;, html sonderzeichen in php auskommentieren, fertige html codes, html sonderzeichen unterdrücken, auskommentierung htmlb, html auskoment, php auskomment, smartyzeichen beinhaltet, smarty html befehle, file_get_contents auskommentiert, php html tag durch zeichen ersetzen, php file_get_contents php tags werden auskommentiert, php alle leerzeichen aus fertiger html

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:01 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.