Hallo schoonheden,
Ik ben bezig een systeem aan het maken waarbij de PHP code gescheiden wordt van de HTML / client side code. De opmaak zelf staat dus zegmaar in een template bestand. Je hebt dus straks twee bestanden voor één pagina. Bijv: "/php/pagina.php" en "/templates/pagina.html". Eerst wordt de code uit "/php/pagina.php" en daarna wordt "/templates/pagina.html" geladen en moeten de juiste variabelen hierin komen.
Om een waarde van een variabel van PHP weer te geven in het HTML template bestand heb ik het volgende bedacht:
In het template bestand ("/templates/pagina.html") staat bijv. %NaamVanString%. Dat moet vervangen worden met de PHP variabel $NaamVanString.
Om alle matches uit het template bestand te vinden gebruik ik de volgende code. Alles wat tussen % en % staat wordt dus in principe gezien als een variabel. Of deze twee tekens echt verstandig zijn moet nog blijken, maar dat is later altijd makkelijk aan het passen.
Deze code werkt goed en geeft alle matches uit het template bestand weer. Voorbeeld van output:
Nu moet %bosbessentaart% dus vervangen worden met de waarde van de PHP variabel $bosbessentaart, %paardVanSinterklaas% moet vervangen worden met de waarde van de PHP variabel $paardVanSinterklaas, en %NaamVanString% moet vervangen worden met de variabel $NaamVanString. Zeg maar.
Maar nu is mijn vraag hoe ik dit het makkelijkste kan doen. Misschien is het zelfs nog makkelijker om de PHP function preg_replace() te gebruiken ipv eerst preg_match_all te gebruiken en daarna de boel te gaan vervangen.
Ik kom er echter niet helemaal uit. Als iemand mij hier een beetje mee kan helpen en mijn hoofd weer in de goede richting te zetten dan zou dat geweldig zijn.
Alvast bedankt.
Ik ben bezig een systeem aan het maken waarbij de PHP code gescheiden wordt van de HTML / client side code. De opmaak zelf staat dus zegmaar in een template bestand. Je hebt dus straks twee bestanden voor één pagina. Bijv: "/php/pagina.php" en "/templates/pagina.html". Eerst wordt de code uit "/php/pagina.php" en daarna wordt "/templates/pagina.html" geladen en moeten de juiste variabelen hierin komen.
Om een waarde van een variabel van PHP weer te geven in het HTML template bestand heb ik het volgende bedacht:
In het template bestand ("/templates/pagina.html") staat bijv. %NaamVanString%. Dat moet vervangen worden met de PHP variabel $NaamVanString.
Om alle matches uit het template bestand te vinden gebruik ik de volgende code. Alles wat tussen % en % staat wordt dus in principe gezien als een variabel. Of deze twee tekens echt verstandig zijn moet nog blijken, maar dat is later altijd makkelijk aan het passen.
code:
1
2
3
4
5
6
| <?php // $pageContent bevat de inhoud van het template bestand ("/templates/pagina.html"), alle matches komen als een array terecht in $matches preg_match_all('/%[a-zA-Z](.*)%/', $pageContent, $matches); ?> |
Deze code werkt goed en geeft alle matches uit het template bestand weer. Voorbeeld van output:
code:
1
2
3
4
5
6
7
8
9
10
11
| <?php // Output van: print_r($matches[0]); Array ( [0] => %bosbessentaart% [1] => %paardVanSinterklaas% [2] => %NaamVanString% ) ?> |
Nu moet %bosbessentaart% dus vervangen worden met de waarde van de PHP variabel $bosbessentaart, %paardVanSinterklaas% moet vervangen worden met de waarde van de PHP variabel $paardVanSinterklaas, en %NaamVanString% moet vervangen worden met de variabel $NaamVanString. Zeg maar.
Maar nu is mijn vraag hoe ik dit het makkelijkste kan doen. Misschien is het zelfs nog makkelijker om de PHP function preg_replace() te gebruiken ipv eerst preg_match_all te gebruiken en daarna de boel te gaan vervangen.
Ik kom er echter niet helemaal uit. Als iemand mij hier een beetje mee kan helpen en mijn hoofd weer in de goede richting te zetten dan zou dat geweldig zijn.
Alvast bedankt.