Содержимое файла index.htm:
<html>
<голова>
<тело>
<!-- НАЧАТЬ сортировку строк -->
{СписокСортировки<br>
<!-- КОНЕЦ сортировки строк -->
</тело>
</голова>
</html>
Содержимое index.php:
<?
$t->set_file ("Индекс", "index.htm");
$t->set_block("Индекс", "RowSort", "RowsSort");
.................................................. ..
.............$list_sort........................
$t->set_var("SortList", $list_sort);
$t->parse("RowsSort", "RowSort", true);
.................................................. ..
.................................................. ..
$t->parse("OUT", "Индекс");
$t->p("ВЫХОД");
?>
Подробный процесс анализа:
1. $t->set_file("Index", "index.htm" $this->file[index] = index.htm);
2. $t->set_block("Index", "RowSort", "RowsSort");
1. Загрузите содержимое индексного файла index.htm и присвойте его переменной $this->varvals[index]
2. $str = $this->varvals[index] получает содержимое файла шаблона.
3. Используйте функцию preg_match_all, чтобы сопоставить содержимое соответствующего блока (RowSort) в файле шаблона и сохранить его в $m[1][0]
4. Замените содержимое (включая заголовок и хвост) в блокировке (RowSort) на {RowSort}.
5. Переменная $this->varvals[RowSort] = $m[1][0] , $this->varkeys[RowSort] = /{RowSort}/
6. Переменная $this->varvals[index] = $str (содержимое изменилось, см. шаг 4), $this->varkeys[index] = /{index}/
3. $t->set_var("SortList", $list_sort);
установите $this->varvals[SortList] = $list_sort;
Установите $this->varkeys[SortList] = /{SortList}/
4. $t->parse("RowsSort", "RowSort", true); (Эта операция повторяется в зависимости от размера сортировки)
1. Используйте функцию subst для сравнения всех значений переменных в $. this->varvals к тем, которые могут в нем содержаться. Специальные символы и $ обрабатываются (и $ заменяются на и $ соответственно, чтобы гарантировать, что при следующем preg_replace не произойдет никаких случайностей) и присваиваются $. массив varvals_quoted
2. $str = $this->varvals[RowSort]
3. Мы видим, что $str в данный момент содержит {SortList}, причем из трёх: $this->varkeys[SortList] = /{SortList}/, $this->varvals[SortList] = $list_sort
4. Видно, что $str, которую мы получаем после preg_replace, представляет собой содержимое после анализа переменной шаблона PHP {SortList} и возвращает $str.
5. Выполните присвоение продолжения $this->varvals[RowSort] // Здесь есть проблема. Вы можете подумать, что первый {RowSort} не анализируется при отображении. Не волнуйтесь, в phplib есть функция завершения, которая ее обработает. это согласно Вашему запросу будет обработано
5. $t->parse("OUT", "Index");
1. Видно, что в $this->varvals[index] есть переменная шаблона PHP, а именно {RowSort}.
2. На предыдущих шагах мы проанализировали содержимое $this->varvals[RowSort]
3. Таким образом, мы присваиваем проанализированное содержимое всех переменных шаблона PHP переменной $this->varvals[OUT]
6. $t->p["OUT"]
Очевидно, функция p в phplib является функцией вывода
;, мы можем напрямую вывести $this->varvals[OUT]
//Здесь следует отметить, что существует действие, которое phplib автоматически выполняет перед выводом, а именно обработка неанализированных переменных шаблона PHP в соответствии с вашими требованиями.