![]() |
[PHP] Parsen mit Regex
Morgen. Ich möchte mir in einem Text jedes Vorkommen von '{wuppdi}' durch $this->variables["wuppdi"] ersetzen lassen.
Dazu habe ich folgendesn Code:
Code:
Prinzipiell schonmal ein Anfang, das ersetzt mir prima {wuppdi} durch {wuppdi}.
<?php
define("TEMPLATE_DIR", "./templates/"); define("TEMPLATE_EXT", ".tpl"); class TemplateEngine { var $variables; function TemplateEngine() { $variables=array(); } function parse($template) { return preg_replace('#{[A-Za-z0-9_]*}#is', '\\0', implode(file(TEMPLATE_DIR.$template.TEMPLATE_EXT))); } function output($template) { print($this->parse($template)); } } ?> So, jetzt die Frage: Wie bringe ich das Viech dazu, {wuppdi} durch $variables["wuppdi"] zu ersetzen? $variables["\\0"] geht ja nicht... |
Re: [PHP] Parsen mit Regex
Schonmal in die Hilfe geschaut :gruebel: ?
Zitat:
|
Re: [PHP] Parsen mit Regex
Ja, etwa 10 mal, schlau geworden bin ich daraus auch ned wirklich.
|
Re: [PHP] Parsen mit Regex
So?
Code:
:gruebel:
function parse($template) {
return preg_replace('#{[A-Za-z0-9_]*}#ise', '$this->variables["\\0"]', implode(file(TEMPLATE_DIR.$template.TEMPLATE_EXT))); } Gruß, Waldteufel |
Re: [PHP] Parsen mit Regex
Habs jetzt selber rausgefunden:
Code:
War ja ne schwere Geburt... :wall:
function parse($template) {
return preg_replace('#{[A-Za-z0-9_]*}#ise', '$this->variables[substr("\\0", 1, strlen("\\0")-2)]', implode(file(TEMPLATE_DIR.$template.TEMPLATE_EXT))); } Ich bin manchmal so begriffsstutzig. |
Re: [PHP] Parsen mit Regex
Weisst du, du koenntest erstens + anstatt * verwenden, dann noch Klammern um den Ausdruck setzen, dann sparst du dir auch den seeehr performanten substr()-Aufruf. Guck dir mal die Hilfe dazu an ;)
Code:
Greetz
function parse($template) {
return preg_replace('#{([A-Za-z0-9_]+)}#ise', '$this->variables["\\1"]', implode(file(TEMPLATE_DIR.$template.TEMPLATE_EXT))); } alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz