Contenu du fichier index.htm :
<html>
<tête>
<corps>
<!-- BEGIN RowSort -->
{Liste de tri}<br>
<!-- END RowSort -->
</corps>
</tête>
</html>
contenu du fichier index.php :
<?
$t->set_file ("Index", "index.htm");
$t->set_block("Index", "RowSort", "RowsSort");
.................................................................. ..
............$list_sort..........................
$t->set_var("Liste de tri", $list_sort);
$t->parse("RowsSort", "RowSort", true);
.................................................................. ..
.................................................................. ..
$t->parse("OUT", "Index");
$t->p("OUT");
?>
Processus d'analyse détaillé :
1. $t->set_file ("Index", "index.htm"); $this->file[index] = index.htm);
2. $t->set_block("Index", "RowSort", "RowsSort");
1. Chargez le contenu du fichier d'index index.htm et affectez-le à la variable $this->varvals[index]
2. $str = $this->varvals[index] obtient le contenu du fichier modèle
3. Utilisez la fonction preg_match_all pour faire correspondre le contenu du bloc correspondant (RowSort) dans le fichier modèle et stockez-le dans $m[1][0]
4. Remplacez le contenu (y compris la tête et la queue) du verrou (RowSort) par {RowSort}
5. Variable $this->varvals[RowSort] = $m[1][0] , $this->varkeys[RowSort] = /{RowSort}/
6. Variable $this->varvals[index] = $str (le contenu a changé, voir étape 4), $this->varkeys[index] = /{index}/
3. $t->set_var("SortList", $list_sort);
set $this->varvals[SortList] = $list_sort);
Définir $this->varkeys[SortList] = /{SortList}/
4. $t->parse("RowsSort", "RowSort", true); (Cette opération est répétée en fonction de la taille du tri)
1. Utilisez la fonction subst pour comparer toutes les valeurs des variables dans le $ this->varvals à ceux qui peuvent y être contenus. Les caractères spéciaux et $ sont traités (et $ sont remplacés par et $ respectivement, afin de garantir qu'aucun accident ne se produise dans le prochain preg_replace), et affectés au $. tableau varvals_quoted
2. $str = $this->varvals[RowSort]
3. Nous pouvons voir que $str contient une {SortList} à ce moment, et parmi trois : $this->varkeys[SortList] = /{SortList}/, $this->varvals[SortList] = $list_sort
4. On peut voir que le $str que nous obtenons après preg_replace est le contenu après analyse de la variable de modèle PHP {SortList} et renvoie $str
5. Effectuez une affectation de continuation à $this->varvals[RowSort] // Il y a un problème ici. Vous pouvez considérer que le premier {RowSort} n'est pas analysé lorsqu'il est affiché. Ne vous inquiétez pas, phplib a une fonction de finition qui le gérera. selon le Votre demande sera traitée
5. $t->parse("OUT", "Index");
1. On peut voir qu'il y a une variable de modèle PHP dans $this->varvals[index] à analyser, à savoir {RowSort}.
2. Dans les étapes précédentes, nous avons analysé le contenu de $this->varvals[RowSort]
3. De cette façon, nous attribuons le contenu analysé de toutes les variables du modèle PHP à la variable $this->varvals[OUT]
6. $t->p["OUT"]
Évidemment, la fonction p dans phplib est la fonction de sortie
;, nous pouvons directement afficher $this->varvals[OUT]
// Ce qu'il convient de noter ici, c'est qu'il existe une action que phplib effectue automatiquement avant la sortie, qui consiste à traiter les variables du modèle PHP non analysées en fonction de vos besoins.