Contenido del archivo index.htm:
<html>
<cabeza>
<cuerpo>
<!-- BEGIN Ordenación de filas -->
{OrdenarLista}<br>
<!-- FIN Ordenar filas -->
</cuerpo>
</cabeza>
</html>
contenido index.php:
<?
$t->set_file ("Índice", "index.htm");
$t->set_block("Índice", "Ordenación de filas", "Ordenación de filas");
................................................. ..
.............$list_sort....................
$t->set_var("OrdenarLista", $lista_sort);
$t->parse("Ordenación de filas", "Ordenación de filas", verdadero);
................................................. ..
................................................. ..
$t->parse("SALIDA", "Índice");
$t->p("SALIDA");
?>
Proceso de análisis detallado:
1. $t->set_file ("Index", "index.htm"); $this->file[index] = index.htm
2. $t->set_block("Index", "RowSort", "RowsSort");
1. Cargue el contenido del archivo de índice index.htm y asígnelo a la variable $this->varvals[index]
2. $str = $this->varvals[index] obtiene el contenido del archivo de plantilla
3. Utilice la función preg_match_all para hacer coincidir el contenido del bloque correspondiente (RowSort) en el archivo de plantilla y guárdelo en $m[1][0]
4. Reemplace el contenido (incluidos el encabezado y la cola) en lock (RowSort) con {RowSort}
5. Variable $this->varvals[RowSort] = $m[1][0], $this->varkeys[RowSort] = /{RowSort}/
6. Variable $this->varvals[index] = $str (el contenido ha cambiado, ver paso 4), $this->varkeys[index] = /{index}/
3. $t->set_var("SortList", $list_sort);
establecer $this->varvals[SortList] = $list_sort);
Establecer $this->varkeys[SortList] = /{SortList}/
4. $t->parse("RowsSort", "RowSort", true); (Esta operación se repite según el tamaño de la clasificación)
1. Utilice la función subst para comparar todos los valores de las variables en $. this->varvals matriz a aquellos que puedan estar contenidos en ella. Los caracteres especiales y $ se procesan (y $ se reemplazan con y $ respectivamente, para garantizar que no ocurran accidentes en el siguiente preg_replace) y se asignan a $. matriz varvals_quoted
2. $cadena = $this->varvals[Ordenación de filas]
3. Podemos ver que $str contiene una {SortList} en este momento, y de tres: $this->varkeys[SortList] = /{SortList}/, $this->varvals[SortList] = $list_sort
4. Se puede ver que el $ str que obtenemos después de preg_replace es el contenido después de analizar la variable de plantilla PHP {SortList} y devuelve $ str
5. Realice la asignación de continuación a $this->varvals[RowSort] // Hay un problema aquí. Puede considerar que el primer {RowSort} no se analiza cuando se muestra. No se preocupe, phplib tiene una función de finalización que lo manejará. de acuerdo con Su solicitud será procesada
5. $t->parse("OUT", "Index");
1. Se puede ver que hay una variable de plantilla PHP en $this->varvals[index] para analizar, a saber, {RowSort}
2. En los pasos anteriores, hemos analizado el contenido de $this->varvals[RowSort]
3. De esta manera, asignamos el contenido analizado de todas las variables de la plantilla PHP a la variable $this->varvals[OUT]
6. $t->p["OUT"]
Obviamente la función p en phplib es la función de salida
;, podemos generar directamente $this->varvals[OUT]
// Lo que debe tenerse en cuenta aquí es que hay una acción que phplib realiza automáticamente antes de la salida, que es procesar las variables de la plantilla PHP no analizadas de acuerdo con sus requisitos.