Da du doch sicherlich Kontrollstrukturen und Funktionen ineinander schachteln willst (wenn nicht Heute, dann sicherlich Morgen) wirst du dir zu dem Zwecke eine Datenstruktur anlegen müssen.
Üblich sind Stacks, Listen oder Bäume...
Mal am Rande:
Templateengines: Warum diese nicht glücklich machen
Templatesystem Eigenbau
Einklappen
X
-
Das klingt nicht logisch. Du brauchst einen Stack. Mit static hat das gar nichts zu tun.
Das was du schreibst ist kein Parser, sondern ein einfaches Rate-Programm. Wenn du deinem Tool eine Datei vorwirfst, in derZitat von uhuwe Beitrag anzeigenDen schreibe ich doch gerade.
- mehrzeilige Strings
- mehrzeilige Kommentare
- Strings mit Schlüsselwörtern
- Kommentare mit Schlüsselwörtern (auskommentierter Code)
vorkommen, macht es daraus, was es will. Sobald jemand mit bösen Absichten dein Tool genauer testet, wird er feststellen, dass es in Leuchtbuchstaben nach Eindringlingen bettelt.
Entschuldige, dass das sehr hart klingt, aber ich hoffe, dir damit wenigstens den Ernst der Lage vermittelt zu haben.
Edit: Um das etwas zu entschärfen: Die Angriffsgefahr ist natürlich nur gegeben, wenn Seitenbesucher selbst die Templates benutzen können. Da es aber so aussieht, als ob nur du die benutzt, sollte es keine Probleme geben, solange du sie selbst richtig benutzt. Das hatte ich anfangs übersehen.
Gruß,
AmicaZuletzt geändert von AmicaNoctis; 08.02.2010, 11:49.
Einen Kommentar schreiben:
-
zu a) Dadurch, dass jede Zeile einzeln bearbeitet wird, muss bei einem Auftreffen von '[/while]' in die Zeile von '[while]' zurückgesprungen werden solange wie noch Datensätze offen sind.Zitat von TobiaZ Beitrag anzeigena) Warum musst du dir das merken? b) welche Rolle soll static dabei erfüllen?
zu b) Static soll veranlassen, dass der Variablenwert nicht jedes mal überschrieben wird.
Einen Kommentar schreiben:
-
a) Warum musst du dir das merken? b) welche Rolle soll static dabei erfüllen?muss ich mir irgendwie merken, in welcher Zeile das ist. Mit 'static' komme ich da irgendwie nicht weiter.
Einen Kommentar schreiben:
-
Den schreibe ich doch gerade.Zitat von combie Beitrag anzeigenDa du da gerade eine eigene Sprache erfindest, wirst du wie alle, welche sowas tun, einen Parser schreiben dürfen.
Einen Kommentar schreiben:
-
Das ist eine Kontrollstruktur und keine FunktionWenn es auf eine Schleifenfunktion handelt,
Da du da gerade eine eigene Sprache erfindest, wirst du wie alle, welche sowas tun, einen Parser schreiben dürfen.
Dabei könnte das Stichwort "endlicher Automat" hilfreich sein.
Einen Kommentar schreiben:
-
Ich lasse in meinem System prüfen, ob es auf Templatefunktionen trifft
wenn das der Fall ist wird geprüft, um welche Funktion es dabei handelt.
Wenn es auf eine Schleifenfunktion handelt, muss ich mir irgendwie merken, in welcher Zeile das ist. Mit 'static' komme ich da irgendwie nicht weiter.
Gibt es da noch eine andere Möglichkeit?
Einen Kommentar schreiben:
-
Ja, das dachte ich auch schon des öfteren.
Glückwunsch, vor allem aber zum Beibehalt der Qualität. Da war ich gerade schon wieder kontraproduktiv...
Einen Kommentar schreiben:
-
Zitat von combie Beitrag anzeigenGlückwunsch!
Aber einen wirst du doch noch hin bekomen... 
OffTopic:
OK, da ist er! Und 10.000!
Peter
Einen Kommentar schreiben:
-
Glückwunsch!
Aber einen wirst du doch noch hin bekomen...
Einen Kommentar schreiben:
-
Na dann gratulieren wir dir zu 9.999 Beiträgen.EDIT:9.999 Posts. Eigentlich sollte ich mich jetzt zur Ruhe setzen

Einen Kommentar schreiben:
-
Zitat von uhuwe Beitrag anzeigenWie muss ich die Funktion deklarieren? mit 'function foo($array[])' geht es schief.PeterPHP-Code:function bla($blubb)
{
print_r($blubb);
}
$blubber = array(1,2,3);
bla($blubber);
EDIT:
9.999 Posts. Eigentlich sollte ich mich jetzt zur Ruhe setzen
Einen Kommentar schreiben:
-
Arrays an funktion übergeben
Wie muss ich die Funktion deklarieren? mit 'function foo($array[])' geht es schief.
Einen Kommentar schreiben:
-
Oder
PeterPHP-Code:global $array;
$array = array(1,2,3);
Einen Kommentar schreiben:
-
Auch wenn ich das Ganze für einen Irrweg halte:
kein Array global erklären kann und wenn, dann weiß ich nicht wie.PHP-Code:$GLOBALS['deinArray'] = array(1,2,3,4);
Einen Kommentar schreiben:
Einen Kommentar schreiben: