首頁 PHP 函式庫 其它類別庫 php模版解析類
php模版解析類

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

<?php

class Parser

{

  private $_tpl;

  public function __construct($_tplFile)

  {

    if (! $this->_tpl = file_get_contents($_tplFile)) {

      exit('ERROR:模版文件读取错误');

    }

  }

  private function parvar()

  {

    $_patten = '/<!--\s+\{$([\w]+)\}\s+-->/';

    if (preg_match($_patten,$this->_tpl)) {

      $this->_tpl = preg_replace($_patten, "<?php echo $this->_vars[''];?>",$this->_tpl);

    }

  }

  private function parif(){

    $_pattenif = '/<!--\s+\{if\s+$([\w]+)\}\s+-->/';

    $_pattenElse = '/<!--\s+\{else\}\s+-->/';

    $_pattenEndif = '/<!--\s+\{\/if\}\s+-->/';

    if (preg_match($_pattenif,$this->_tpl)) {

      if (preg_match($_pattenEndif,$this->_tpl)) {

        $this->_tpl = preg_replace($_pattenif,"<?php if ($this->_vars['']){?>",$this->_tpl);

        $this->_tpl = preg_replace($_pattenEndif,"<?php } ?>",$this->_tpl);

        if (preg_match($_pattenElse,$this->_tpl)) {

          $this->_tpl = preg_replace($_pattenElse,"<?php }else{?>",$this->_tpl);

        }

      }else{

        echo 'ERROR:IF语句没有关闭!';

      }

    }

  }

接收模版檔案內容後,建構方法,取得模版檔案內容解析後用普通變數解析IF語句,之後解析模版檔案產生編譯檔。

免責聲明

本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn

相關文章

為什麼要從 Python 中的「object」繼承:一個類別繼承問題 為什麼要從 Python 中的「object」繼承:一個類別繼承問題

24 Dec 2024

了解 Python 類別繼承在 Python 中,類別可以從其他類別繼承,這使它們能夠存取父類別的屬性並...

如何在 Linux 上建立和使用動態共用 C 類別庫? 如何在 Linux 上建立和使用動態共用 C 類別庫?

05 Dec 2024

在 Linux 上建立和使用動態共用 C 類別庫建立共用類別庫要建立共用 C 類別庫,您可以依照...

為什麼無法在字段初始化程序中初始化非靜態字段? 為什麼無法在字段初始化程序中初始化非靜態字段?

03 Jan 2025

了解欄位初始化問題在您的程式碼中,您有一個儲存庫類別 (DinnerRepository) 和一個服務類別 (Service),它使用...

如何在 NetBeans 中設定 Java 專案的類別路徑? 如何在 NetBeans 中設定 Java 專案的類別路徑?

07 Dec 2024

在 NetBeans 中設定類別路徑在 NetBeans 中使用 Java 時,您可能需要調整類別路徑以包含其他程式庫或 JAR...

PHP5試用(二)_PHP教程 PHP5試用(二)_PHP教程

21 Jul 2016

PHP5試用(二)。抽象類別 抽象類別不能被實例化。 抽象類別與其它類別一樣,允許定義變數及方法。 抽象類別同樣可以定義一個抽象的方法,抽象類別的方法不會被執

什麼時候應該在 Java 中使用「final」類別? 什麼時候應該在 Java 中使用「final」類別?

08 Dec 2024

何時在 Java 中使用「final 類別」在 Java 中,您可以將一個類別宣告為 Final,這意味著它不能被其他類別擴展。這個概念可能...

See all articles