Bonjour,
je suis actuellement en train d'essayer de comprendre comment fonctionne un moteur de templates et pour me faire la main j'ai pris le moteur de PHPLib (fichier template.inc) ; dans la fonction set_block() dont le rôle est de faire un travail de remplacement on trouve :
$var_name est une variable passée en paramètre à set_block.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $str = $this->get_var($parent); $reg = "/[ \t]*<!--\s+BEGIN $varname\s+-->\s*?\n?(\s*.*?\n?)\s*<!--\s+END $varname\s+-->\s*?\n?/sm"; preg_match_all($reg, $str, $m); if (!isset($m[1][0])) { $this->halt("set_block: unable to set block $varname."); return false; } $str = preg_replace($reg, "{" . $name . "}", $str); $this->set_var($varname, $m[1][0]); $this->set_var($parent, $str);
Je n'arrive pas à comprendre entièrement le sens de 2 parties de l'expression régulière : \s*?\n?(\s*.*?\n?)\s* et \s*?\n?/sm .
J'ai pourtant bien fouiné dans les docs php ...
Quelqu'un pourrait-il m'expliquer ce qu'elles matchent ?
Merci par avance
Partager