#1
| |||
| |||
html in php wandelnIch will TPL-Befehle und html-Seiteninhalte in php wandeln, so das diese in eine php-Datei geschrieben werden können bzw mit eval ausgeführt werden können. Ich bin mir aber nicht ganz sicher ob ich das richtig angehe und würde da gern mal das Grundprinzip erklärt bekommen... Muss ich den Code per echo ausgeben oder einfach per return in den code zurückgeben?... Kann mir mal jemand unter die Arme greifen? Nur mal das Grundprinzip, damit ich da mal von einer richtigen Grundlage ausgehe... MfG |
#2
| |||
| |||
Als Markierungen könnte ich z.B. PHP-Code: PHP-Code: Alles zwischen ?> und <?php sollte dann als echo ausgegeben werden. Damit es keine Probleme mit ' oder " usw gibt, benutze ich noch addslashes, um diese zu escapen... Die Funktion die das durchführen soll, gibt aber immer nur PHP-Code: PHP-Code: Kann mir jemand helfen? Sorry wegen der ungenauen Beschreibung, mir fehlte das erste mal die Zeit |
#3
| |||
| |||
Es gibt mehrere Möglichkeiten: a) Du nimmst Smarty oder etwas ähnliches. b) Du zeigst uns, was du bisher hast, damit wir einen Fehler finden können. __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#4
| |||
| |||
Ok, ich habe noch einiges zu testen und getestet, sollte das gemacht sein, poste ich mal einen Zwischenstand hier |
#5
| |||
| |||
IF, ELSEIF, ELSE, ENDIF => funktioniert Variablen aller Art => funktionieren (z.B. $this->var['test'] als {var->test}) include: $file => funktioniert ($file muss in $this->inc['variable'] stehen) Problem: Seitenlayout getrennt von Content parsen und cachen (in arbeit) Foreach-Schleifen (noch kein Lösungsansatz) Weitere geplante Featuren: BB-Code Smilies Das TPL wird in einer php-Datei gespeichert (ohne html-Bereiche, reines php) Foreach-Schleifen: PHP-Code: |
#6
| |||
| |||
Wie kann ich mit preg_replace nach folgenden SUchmustern suchen (mit oder verknüpft): PHP-Code: Oder-Verknüpfung ist klar (|), aber wie bekomm ich das zusammen das es auch funktioniert? Leerzeichen könnte '/w' und Zeilenumbruch '/n' sein, aber das habe ich in verschiedenen Kombinationen schon ausprobiert, ohne erfolg... Mein Code: PHP-Code: Geändert von eBoy (23.02.2005 um 11:31 Uhr). |
#7
| ||||
| ||||
Du könntest statt \w und \n einfach \s für generelle "Space"-Charaktere verwenden. Das schliesst zwar auch Tabs (\t) mit ein aber das macht ja nix. Die Oder-Verknüpfung kannst du dir auch sparen indem du einfach \s? schreibst. Das heisst dann "entweder ein Space oder gar nichts". Der Reguläre Ausdruck (ungetestet): PHP-Code: PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#8
| |||
| |||
Mh, funktioniert mal nicht auf anhieb... Problemzeile: PHP-Code: Ich werde zwar nochmal rumprobieren, aber die ersten Versuche waren so ebenfalls erfolglos |
#9
| ||||
| ||||
Also bei mir funktioniert das einwandfrei. Ich habs mit folgendem Codeschnippsel getestet: PHP-Code: Code: '; include ($this->inc['test_inc']); include ($this->inc['html_inc']); __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#10
| |||
| |||
Mh, hast du das unter Linux oder Windows getestet? Ich habe es unter Windows probiert, was wohl das Problem war... Somit werde ich es nochmals probieren und den Fehler diesmal nicht mehr machen |
#11
| ||||
| ||||
Das wird wohl das Problem sein. Windows benutzt als Zeilenumbruch \n\r während Linux nur \n nimmt. Scheinbar ist \r bei Regulären Ausdrücken nicht in \s enthalten. Folgendes sollte auch unter Windows und Macs funktionieren: PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#12
| |||
| |||
Ok, das hat sich erledigt... Ich habe mir schon einen Zeilenumbruch eingebaut (<br>), dieser wurde verarbeitet und dann durch den regulären Ausdruck (wieso auch immer) nicht entfernt. Wenn ich den Zeilenumbruch wieder raus nehme, funktioniert das ganze... Somit war es wohl oder übel mein Fehler |
#13
| |||
| |||
Die Funktionen des Parsers stehen (if, elseif, variablen, foreach, include) und einfaches Caching ist auch schon integriert. Jetzt muss um das ganze herum noch eine funktionierende TPL-Klasse gebaut werden. Hinzukommen soll noch: BB-Code Das wird aber dauern, da ich nebenher noch in anderen Projekten tätig bin... Diese Klasse will ich für mein nchfolgendes Projekt nutzen, was aber noch lange nicht begonnen wird... |
#14
| |||
| |||
Ich habe das TPL-System völlig umgekrempelt und vereinfacht, was auch scheinbar funktioniert. Dazu habe ich jetzt ein BB-Code Parser angefangen. B-, U- I-Tags funktionieren bereits, aber ich habe Probleme mit einem Schriftfarbe-Tag... PHP-Code: Woran liegt das? Oder ist in meinem php-Code oben ein Fehler? [EDIT] Das gleiche Problem habe ich auch mit einem CENTER-Tag (egal ob in DIV oder SPAN gewandelt) [/EDIT] Geändert von eBoy (30.03.2005 um 11:41 Uhr). |
#15
| ||||
| ||||
Wenn du einen PHP-String in einfache (') Anführungszeichen setzt musst du innerhalb dieses Strings doppelte (") Anführungszeichen nicht mit Backslash entschärfen (in diesem Fall wird der Backslash normal ausgegeben). Das gleiche gilt andersrum: in einem String, der mit doppelten Anführungszeichen umschlossen wird, werden einfache Anführungszeichen nicht mit Backslash entschärft. Daher kommt bei deinem Parser beispielsweise Code: <font color=\"blue\">fooblau</font Ändere den Ersetzungsstring auf Code: '<font color="\1">\2</font>' __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#16
| ||||
| ||||
Übrigens kann man per regulären Ausdrücken keine verschachtelten Tags behandeln. Du solltest das ganze erstmal in Token zerlegen und dann unter Zuhilfenahme eines Stacks abarbeiten. |
#17
| |||
| |||
Ich habe die unnötigen Backslashes entfernt und das ganze mit style gelöst. Also css anstatt html. Jedenfalls funktioniert das nun mit der css- Lösung |
Stichworte |
- |
Themen-Optionen | |
Thema bewerten | |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Gutes php Wiki | Daniel Richter | Blog, CMS, Wiki und Sonstige | 21 | 13.12.2009 12:56 |
Suche jemanden mit HTML + PHP Kenntnissen | Jochen2003 | Boardunity-Talk | 9 | 11.02.2005 11:48 |
Zend's PHP 5 Programmierwettbewerb... | Fabchan | Programmierung und Datenbanken | 9 | 14.07.2004 22:37 |
aktuelle PHP 4 / 5 Bücher | Philipp Herbers | Programmierung und Datenbanken | 10 | 15.06.2004 00:18 |
Das PHP Forum 4 all | ShadowByte | Projektvorstellung und Bewertung | 4 | 22.06.2003 21:12 |