Beste mensen,
Ik heb een probleempje met preg_replace waar ik niet uitkom.
In een eerste versie van een parser heb ik tags als {URL} laten vervangen door bijv een url. Nu wil ik dit uitbereiden met een language parser. Dus bijv. {INTRO_TEKST} vervangen door een taalafhankelijke tekst.
Daartoe dacht ik om eerst de algemene tags te laten vervangen en daarna de taalafhankelijke, de akgemene voeg ik in mijn script toe (document->insert("url","http://www.tweakers.net"); De taalafhankelijke staan in een file opgesomt ($lang['intro']="hallo ...");
Nu loop ik echter tegen het probleem aan dat in de eerste replace een {..} tag wordt gevonden en dat deze vervangen wordt door een lege string. Hierdoor kan hij door de tweede preg_replace niet meer gevonden worden.
Kan iemand mij op het goede spoor zetten om dit probleempje op te lossen?
Ik heb een probleempje met preg_replace waar ik niet uitkom.
In een eerste versie van een parser heb ik tags als {URL} laten vervangen door bijv een url. Nu wil ik dit uitbereiden met een language parser. Dus bijv. {INTRO_TEKST} vervangen door een taalafhankelijke tekst.
Daartoe dacht ik om eerst de algemene tags te laten vervangen en daarna de taalafhankelijke, de akgemene voeg ik in mijn script toe (document->insert("url","http://www.tweakers.net"); De taalafhankelijke staan in een file opgesomt ($lang['intro']="hallo ...");
PHP:
1
2
3
4
5
| //eerst algemene tags als URL en PATH enzo $file = preg_replace("/{(.*?)}/e", '$this->data["$1"]', $file); Daarna de taalafhankelijke teksten $file = preg_replace("/{(.*?)}/e", '$this->lang_content["$1"]', $file); |
Nu loop ik echter tegen het probleem aan dat in de eerste replace een {..} tag wordt gevonden en dat deze vervangen wordt door een lege string. Hierdoor kan hij door de tweede preg_replace niet meer gevonden worden.
Kan iemand mij op het goede spoor zetten om dit probleempje op te lossen?