2010-12-04 3 views
0

Je crée mon propre moteur de template en utilisant PHP. L'idée de base est que pour chaque page (visible pour les utilisateurs) il existe un fichier modèle unique avec extension HTML. Par exemple ...Moteur de template: Inclure

utilisateurs-list.php => utilisateurs-list.html

profile.php => profile.html

about-us.php => about-nous. html

Je viens de rendre les commentaires disponibles dans les fichiers modèles (en fait HTML). Les commentaires sont visibles avant le traitement, donc le vrai client ne les verra pas, mais le développeur le verrait. La syntaxe est {* foo *}, et cela est fait en utilisant regex. Maintenant, je besoin de quelque chose comme ...

{include "header.html"} 

Je ne sais pas comment l'écrire en utilisant le code, mais, à mon humble avis, je besoin de quelque chose comme ...

1) {comprennent une correspondance avec tous "xxx"},

2) a partir de matchs a pris chaîne entre "et",

3) Charger les fichiers contenus dans les chaînes et ajouter à la bonne place.

+0

Vous pouvez PHP Smarty ce que la caisse n'implémente avant votre propre moteur de modèle (bien que moi-même est pas un fan de Smarty) – ajreal

Répondre

1

quelque chose comme

preg_replace_callback(
    '~{include "(.+?)"}~', 
    function($m) { return file_get_contents($m[1]) }, 
    $str); 
Questions connexes