เนื้อหาไฟล์ index.htm:
<html>
<หัว>
<ร่างกาย>
<!-- เริ่มการเรียงลำดับแถว -->
{เรียงลำดับรายการ<br>
<!-- สิ้นสุดการจัดเรียงแถว -->
</ร่างกาย>
</หัว>
</html>
เนื้อหา index.php:
<?
$t->set_file ("ดัชนี", "index.htm");
$t->set_block("ดัชนี", "RowSort", "RowsSort");
-
............$รายการ_เรียงลำดับ........................
$t->set_var("SortList", $list_sort);
$t->parse("RowsSort", "RowSort", จริง);
-
-
$t->parse("ออก", "ดัชนี");
$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);
set $this->varvals[SortList] = $list_sort
ตั้งค่า $this->varkeys[SortList] = /{SortList}/
4. $t->parse("RowsSort", "RowSort", true); (การดำเนินการนี้จะทำซ้ำตามขนาดของการเรียงลำดับ)
1. ใช้ฟังก์ชันย่อยเพื่อเปรียบเทียบค่าตัวแปรทั้งหมดใน $ this->varvals array ไปยังอักขระพิเศษและ $ จะถูกประมวลผล (และ $ จะถูกแทนที่ด้วยและ $ ตามลำดับเพื่อให้แน่ใจว่าไม่มีอุบัติเหตุเกิดขึ้นใน 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. จะเห็นได้ว่ามีตัวแปรเทมเพลต PHP ใน $this->varvals[index] ที่จะแยกวิเคราะห์ คือ {RowSort}
2. ในขั้นตอนก่อนหน้านี้ เราได้แยกวิเคราะห์เนื้อหาของ $this->varvals[RowSort]
3. ด้วยวิธีนี้ เรากำหนดเนื้อหาที่แยกวิเคราะห์ของตัวแปรเทมเพลต PHP ทั้งหมดให้กับตัวแปร $this->varvals[OUT]
6. $t->p["OUT"];
แน่นอนว่าฟังก์ชัน p ใน phplib คือฟังก์ชันเอาต์พุต เราสามารถส่งออก $this->varvals[OUT] ได้โดยตรง
//สิ่งที่ควรสังเกตที่นี่คือมีการกระทำที่ phplib ดำเนินการโดยอัตโนมัติก่อนเอาต์พุต ซึ่งก็คือการประมวลผลตัวแปรเทมเพลต PHP ที่ไม่ได้แยกวิเคราะห์ตามความต้องการของคุณ