conteúdo do arquivo index.htm:
<html>
<cabeça>
<corpo>
<!-- BEGIN RowSort -->
{Classificarlista}<br>
<!-- END RowSort -->
</body>
</head>
</html>
conteúdo index.php:
<?
$t->set_file("Índice", "index.htm");
$t->set_block("Index", "RowSort", "RowsSort");
.................................................. ..
.............$list_sort.........................
$t->set_var("SortList", $list_sort);
$t->parse("RowsSort", "RowSort", true);
.................................................. ..
.................................................. ..
$t->parse("OUT", "Índice");
$t->p("SAÍDA");
?>
Processo de análise detalhada:
1. $t->set_file ("Index", "index.htm");
2. $t->set_block("Index", "RowSort", "RowsSort");
1. Carregue o conteúdo do arquivo de índice index.htm e atribua-o à variável $this->varvals[index]
2. $str = $this->varvals[index] obtém o conteúdo do arquivo de modelo
3. Use a função preg_match_all para combinar o conteúdo do bloco correspondente (RowSort) no arquivo de modelo e armazene-o em $m[1][0]
4. Substitua o conteúdo (incluindo início e fim) no bloqueio (RowSort) por {RowSort}
5. Variável $this->varvals[RowSort] = $m[1][0] , $this->varkeys[RowSort] = /{RowSort}/
6. Variável $this->varvals[index] = $str (o conteúdo foi alterado, veja a etapa 4), $this->varkeys[index] = /{index}/
3. $t->set_var("SortList", $list_sort);
set $this->varvals[SortList] = $list_sort);
Defina $this->varkeys[SortList] = /{SortList}/
4. $t->parse("RowsSort", "RowSort", true); (Esta operação é repetida de acordo com o tamanho da classificação)
1. Use a função subst para comparar todos os valores das variáveis no $. this->varvals array para aqueles que podem estar contidos nele. Os caracteres especiais e $ são processados (e $ são substituídos por e $ respectivamente, para garantir que nenhum acidente ocorra no próximo preg_replace) e atribuídos ao $. matriz varvals_quoted
2. $str = $this->varvals[RowSort]
3. Podemos ver que $str contém um {SortList} neste momento, e de três: $this->varkeys[SortList] = /{SortList}/, $this->varvals[SortList] = $list_sort
4. Pode-se ver que $str que obtemos após preg_replace é o conteúdo após analisar a variável de modelo PHP {SortList} e retorna $str
5. Execute a atribuição de continuação para $this->varvals[RowSort] // Há um problema aqui Você pode considerar que o primeiro {RowSort} não é analisado quando exibido. de acordo com o Seu pedido será processado
5. $t->parse("OUT", "Index");
1. Pode-se observar que existe uma variável de template PHP em $this->varvals[index] a ser analisada, a saber, {RowSort}.
2. Nas etapas anteriores, analisamos o conteúdo de $this->varvals[RowSort]
3. Desta forma, atribuímos o conteúdo analisado de todas as variáveis do template PHP à variável $this->varvals[OUT]
6. $t->p["OUT"]
Obviamente a função p no phplib é a função de saída
;, podemos gerar diretamente $this->varvals[OUT]
//O que deve ser observado aqui é que existe uma ação que o phplib executa automaticamente antes da saída, que é processar as variáveis do modelo PHP não analisadas de acordo com seus requisitos.