Bonjour à tous et à toutes,

Je réalise en ce moment un petit moteur de templates pour un site et j'ai un problème pour la gestion des blocs.
Voici la méthode assigner:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<?php	
public function assigner($nom_var, $valeur_var) {
	    $this->tab_var[$nom_var] = $valeur_var; 
            // Toute les variables a transmettre au tpl sont donc contenu dans un tableaux associatifs
	}
?>

et la fonction de parsage:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
	public function chargerTPL($templatenom) {
		$this->page .= file_get_contents('vues/templates/'.$templatenom.'.tpl');
		foreach($this->tab_var as $cle => $valeur) { 
 
			if(is_array($valeur)) {
 
				foreach($valeur as $cle2 => $valeur2) { //Gestion des blocs
			        $cherche = '<bloc nom="'.$cle.'">  {%{'.$cle2.'}} [:alnum:] </bloc>'; 
				    $remplacement = '<bloc nom="'.$cle.'"> [0-9a-zA-Z] {%{'.$valeur2.'}} [:alnum:] </bloc>';
				}
			}
 
			else {
			    $cherche = '{%{'.$cle.'}}';
			    $remplacement = $valeur;
			}
 
			$this->page = preg_replace($cherche, $remplacement, $this->page);
		}
	}
?>

Donc les variables simple s'écrive sous la forme %{variable}:
exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?php
         //dans le php: 
         $page->assigner('var_test', $test);
         //dans le tpl: 
         %{var_test}
?>

et les variables tableaux doivent etre écris sous la formes: <bloc nom='le nom de la variable'> bla bla %{le nom de la cle} </bloc>
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?php
//dans le php: 
$page->assigner('var_test', array('titre'=>'Ma news','contenu' => 'blabla');
//dans le tpl:
?>
<bloc nom='var_test'>
La news 1 se nomme: %{titre} et son contenu est: %{contenu}
</bloc>
J'ai donc tenter de faire un $cherche sous la forme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<?php
$cherche = '<bloc nom="'.$cle.'"> [:alnum:] {%{'.$cle2.'}} [:alnum:] </bloc>'; 
?>
Sauriez vous quelle expression régulière je dois utiliser ?
Merci d'avance !