parserklasse - wie fängt man sowas an
han
- php
0 Sascha Kersken0 dedlfix
0 han0 dedlfix
Hi,
also ich frag jetzt mal ganz dumm:
Wie baut man irgendeine Parserklasse?
Ich meine welche Funktionen ermöglichen es einem einen String Zeichen für Zeichen zu durchsuchen und wie ist das mit rekursion?
Mit welcher Funktion kann ich bestimmte Teile eines String, die mit Position in einem Arra gespeichert sind ersetzen?
grüssle
P.S.: Mal so ne Frage nebenbei, wie gibt man eigtl auf einer Deutschen Tastatur so komische Ä usw ein, die mir zum ersten mal mit utf-8 über den Weg gelaufen sind?
Hallo,
Hi,
also ich frag jetzt mal ganz dumm:
Wie baut man irgendeine Parserklasse?
Kommt drauf an, was du parsen möchtest ;-).
Für alles XML-Basierte gibt es bereits leistungsfähige Parser, auch in PHP.
Wenn du also eine neue, eigene Sprache entwerfen und dann parsen möchtest, gibt es gute Gründe, sie von vorn herein XML-basiert zu entwerfen.
Für alle anderen Sprachen kannst du entweder mit regulären Ausdrücken herumpanschen (sehr schwierig, weil man meist zigtausend Spezialfälle bedenken muss). Richtig geht man es an, indem man einen Parsergenerator verwendet. Der Klassiker für so etwas ist yacc, aber für PHP gibt es inzwischen auch eigenständige Lösungen wie z.B. ppage (http://www.synflag.com/de/pub/products/ppage.php).
Hoffe, das hilft so weit.
P.S.: Mal so ne Frage nebenbei, wie gibt man eigtl auf einer Deutschen Tastatur so komische Ä usw ein, die mir zum ersten mal mit utf-8 über den Weg gelaufen sind?
Hm. Ich sehe da nur ein "Ä", und das erzeugt man mit der gleichnamigen Taste ;-). Nehme mal an, du meintest ein anderes Zeichen. Auf welcher Plattform bist du denn unterwegs? Linux? Windows? Mac? ...?
Gruß
Sascha
echo $begrüßung;
Wenn du also eine neue, eigene Sprache entwerfen und dann parsen möchtest, gibt es gute Gründe, sie von vorn herein XML-basiert zu entwerfen.
Und auch gute Gründe, das nicht in XML zu tun, denn sonst kommt am Ende sowas wie CSAML raus. (Man beachte das Veröffentlichungsdatum.) XML ist eine Datenbeschreibungssprache. Für andere Zwecke gibt es geeignetere Möglichkeiten. Ohne die konkrete Aufgabenstellung zu kennen, wird es schwierig, eine Empfehlung auszusprechen.
echo "$verabschiedung $name";
Hi,
Also ich weiß noch nicht, was ich genau Parsen möchte, aber ich habe mich so über den Grundaufaufbaue eines Parser verkopftf...
Wie untersucht man mit php einen string Zeichen für Zeichen?
Mit einer while Schleife und irgendwie immer ein Zeichen weiter?
Aber wie wird dann ein bestimmte Zeichenfolge erkannt, wenn immer nur ein Zeichen eingelesen wird?
mfg
echo $begrüßung;
Wie untersucht man mit php einen string Zeichen für Zeichen?
Strings haben eine feste Länge, man kann also mit for durchlaufen. Auf die einzelnen Zeichen greift man wie bei einem Array zu: $string[4] ergibt das 5. Zeichen. Es gibt auch noch die {}-Syntax statt [], aber das nach einigem Hin und Her in der Vergangenheit endgültig zugunsten von [] entschieden worden.
Mit einer while Schleife und irgendwie immer ein Zeichen weiter?
Auch das geht.
Aber wie wird dann ein bestimmte Zeichenfolge erkannt, wenn immer nur ein Zeichen eingelesen wird?
Man liest solange, bis man eine sinnvolle Zeichenfolge gefunden hat. Vereinfachtes Beispiel: Wenn du bei PHP-Syntax auf ein $ triffst, liest du weiter, bis du ein Zeichen findest, das kein für einen Variablenbezeichner gültiges Zeichen darstellt (oder mit anderer Logik: solange du gültige Zeichen findest), und hast dann einen Variablennamen.
echo "$verabschiedung $name";