Performance-Frage

Servus,
nehmen wir mal an, dass ich in (größeren) Dateien bestimmte Inhalte ersetzen möchte - ähnlich wie bei den verschiedensten Template-Engines.

Welche Variante wäre wohl am schnellsten:

  1. Ersetzung durch reguläre Ausdrücke
  2. eigener Compiler in PHP schreiben

Denke, dass für 2) doch ein relativ großer Aufwand entsteht - doch das ganze ist sowieso nur theoretischer Natur. Es interessiert mich einfach wie solch ein Problem am besten zu lösen wäre.

gruss Markus

Hallo Markus,

was das mit einem eigenen Compiler zu tun hat ist mir nicht ganz klar :wink: Da es wohl im wesentlichem um Suchen und Ersetzen geht, kommt es auf die Geschwindigkeit des verwendetetn ALgorithmus an. Reguläre Ausdrücke sind wenn ganz klar ist was durch was ersetz werden soll denkbar schlecht geeignet (vor allem falls nacheinander jeder Suchbegriff auf jeweils die ganze Datei angewendet wird). Am schnellsten ist es vermutlich wenn der Text nur einmal durchgegangen wird und dabei alle Suchbegriffe ersetzt werden und die Suche der Schlüsselwörter auch noch zügig vonstatten geht, da gibt es verschiedene Algorithmen… Aber wie du schon sagtest ist es eher theoretischer Natur und ich würde dir nicht empfehlen sowas zu programmieren :smile:

Grüße
Bruno

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo.
Ich würds nicht mit Regulären Ausdrücken machen, die sind für sowas zu unhandlich. Ein Compiler ist da besser, den brauchst du noch nicht mal selbst zu programmieren, du kannst PHP benutzen (erstauntes wie das?). Ganz einfach, du öffnest eine php Datei über HTTP, also: http://localhost/template.php und speicherst das Ergebnis einfach dahin wohin du es haben willst, und als der Dateityp der dir passt. In neueren PHP Versionen (ab 4?, habs vergessen…) kann man auch copy dafür benutzen. Wer dann noch einen eigennen Compiler programmiert den würd ich ehrlich gesagt in die Klapse stecken…

Grüße
Stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

was das mit einem eigenen Compiler zu tun hat ist mir nicht
ganz klar :wink: Da es wohl im wesentlichem um Suchen und Ersetzen…

Naja, wenn ich einen Template-Code in einen zum Beispiel reinen HTML/PHP-Code übersetzen will, hat das meiner Meinung nach schon einigermaßen was mit einem Compiler zu tun. Der macht ja auch nichts anderes als Sprachen zu übersetzen. Aber ist ja eigentlich auch egal:wink:

Das wichtigste ist ja, dass reguläre Ausdrücke dafür kaum zu gebrauchen sind.

gruss Markus