Expressions régulières - Parser du template HTML
Posté : 12 avr. 2010, 10:39
Bonjour à tous,
ceci est mon premier message alors bonjour et merci d'avance pour les échanges que j'aurais ici.
J'entre directement dans le vif du sujet !
Je suis actuellement en train de bosser sur mon petit framework PHP perso, dans le but d'avoir ma solution maison pour réaliser mes projets.
Deux des aspects du boulot sont :
- Gestion de templates
- Contenu géré par plugins
J'en arrive à une phase un peu compliqué dans le développement, puisque je n'avais encore jamais eu à manipuler les expressions régulières.
En gros, le soucis est le suivant :
J'ai des modèles de templates, des documents HTML correspondant au corps des pages générées par le programme.
Dans ce document template, j'ai des "pseudo-balises", comme par exemple !%!MENU!!%. C'est à cet endroit que le programme insèrera le menu par exemple.
L'idée est donc de repérer ces "pseudo-balises" et connaitre leur contenu.
Pour débuter, j'utilise un bête script de test.
Le soucis, c'est que je n'arrive pas à comprendre comment récupérer ce dont j'ai besoin.
J'en arrive à un point ou j'aurais vraiment besoin d'un coup de main.
Merci d'avance !
Tom
ceci est mon premier message alors bonjour et merci d'avance pour les échanges que j'aurais ici.
J'entre directement dans le vif du sujet !
Je suis actuellement en train de bosser sur mon petit framework PHP perso, dans le but d'avoir ma solution maison pour réaliser mes projets.
Deux des aspects du boulot sont :
- Gestion de templates
- Contenu géré par plugins
J'en arrive à une phase un peu compliqué dans le développement, puisque je n'avais encore jamais eu à manipuler les expressions régulières.
En gros, le soucis est le suivant :
J'ai des modèles de templates, des documents HTML correspondant au corps des pages générées par le programme.
Dans ce document template, j'ai des "pseudo-balises", comme par exemple !%!MENU!!%. C'est à cet endroit que le programme insèrera le menu par exemple.
L'idée est donc de repérer ces "pseudo-balises" et connaitre leur contenu.
Pour débuter, j'utilise un bête script de test.
Le soucis, c'est que je n'arrive pas à comprendre comment récupérer ce dont j'ai besoin.
Code : Tout sélectionner
<?php
$texte='Je suis !%!CONTENTU!!% trzès content !%!CONTENTE!!% et puis !%!MENUHGYG!!%';
preg_match_all("(!%!.{8}!!%)",$texte,$solution1);
preg_match_all("(!%!(.*)!!%)",$texte,$solution2);
preg_match_all("(!%!(.*[^ ])!!%)",$texte,$solution3);
preg_match_all("(!%!(.*[^o])!!%)",$texte,$solution4); //juste un test pour exclure les o
foreach($solution1[0] as $a) echo "\n".$a."\n"; //fonctionne bien mais ça m'oblige à avoir toujours 8 caractères dans ces pseudobalises
foreach($solution2[0] as $a) echo "\n".$a."\n"; //affiche !%!CONTENTU!!% trzès content !%!CONTENTE!!% et puis !%!MENUHGYG!!%
foreach($solution3[0] as $a) echo "\n".$a."\n"; //affiche la même chose
foreach($solution4[0] as $a) echo "\n".$a."\n"; //affiche la même chose également, les o ne sont pas exclus.
?>Merci d'avance !
Tom