首页 PHP 库 其它类库 php模版解析类
php模版解析类
<?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

相关文章

PHP 高级特性解析:深入了解动态类型和弱类型 PHP 高级特性解析:深入了解动态类型和弱类型

08 May 2024

PHP动态类型允许变量在运行时确定其类型,提供灵活性和弱类型比较不同类型表达式。实际案例包括表单数据处理、数组处理和数据库查询。注意事项包括匹配比较类型、使用严格比较运算符和类型标注。通过理解和谨慎使用,开发者可以利用这些特性编写强大可靠的PHP程序。

Java设计模式之模版方法模式解析 Java设计模式之模版方法模式解析

09 May 2024

模板方法模式是一种行为设计模式,它定义了算法的骨架,部分步骤由子类实现。(1)它包含抽象类(定义骨架)和具体类(实现特定步骤)。(2)抽象类定义公共操作和钩子方法。(3)具体类覆盖钩子方法以自定义行为。(4)优点包括可复用性、灵活性、扩展性。(5)局限性包括复杂性和性能开销。

PHP 函数与类的深层解析 PHP 函数与类的深层解析

04 May 2024

PHP函数通过按值或按引用传递参数,实现参数传递。PHP类提供继承和多态,允许子类复用基类代码,并做出不同的反应。实战案例中,注册函数使用类创建并保存用户对象,展示了函数和类在实际中的应用。具体包括:1.注册函数实现参数验证、创建用户对象、保存到数据库并返回用户对象;2.用户类包含用户名、密码和邮箱属性,并提供构造函数初始化属性。

PHP解析html类库simple_html_dom的转码bug PHP解析html类库simple_html_dom的转码bug

13 Jun 2016

PHP解析html类库simple_html_dom的转码bug。这几天有在用simple_html_dom抓一些文章。不同网站的编码在国内基本上是gbk gb2312 utf-8。而以gb2312和utf-8居多。 我这一版的simple_html_dom有一个方

PHP面向对象编程中的抽象类解析 PHP面向对象编程中的抽象类解析

11 Aug 2023

PHP面向对象编程中的抽象类解析抽象类是PHP面向对象编程中一个重要的概念,它提供了一种用于定义接口的机制,同时也允许部分方法的实现。本文将对抽象类的定义、使用场景以及代码示例进行解析。一、抽象类的定义抽象类是指一种特殊的类,它不能被实例化,只能被继承。抽象类中可以包含抽象方法以及普通方法。抽象方法必须在具体的子类中被实现,而普通方法可以有默认的实现或者被覆

PHP面向对象编程中的单例模式解析 PHP面向对象编程中的单例模式解析

12 Aug 2023

PHP面向对象编程中的单例模式解析在PHP的面向对象编程中,经常会遇到需要实例化一个对象的情况,但有些时候我们希望一个类在整个应用程序中只能有一个实例。这就是单例模式的用途,它能确保一个类只有一个实例,并提供一个全局访问点。单例模式常见的用途是在数据库连接、日志记录和配置文件读取等全局共享资源的处理中。在这篇文章中,我们将解析PHP中的单例模式,详细解释其原

See all articles