搜索
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模板实例PHP模板解析类实例,php模板实例

13Jun2016

PHP模板解析类实例,php模板实例。PHP模板解析类实例,php模板实例 本文实例讲述了PHP模板解析类。分享给大家供大家参考。具体如下: phpclass template { private $vars = array(); p

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

09May2024

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

如何链接依赖于其他静态库的静态库?如何链接依赖于其他静态库的静态库?

13Dec2024

将静态库链接到其他静态库:一种综合方法静态库提供了一种方便的机制来打包可重用的...

PHP解析HTML类 – PHP Simple HTML DOM ParserPHP解析HTML类 – PHP Simple HTML DOM Parser

13Jun2016

PHP解析HTML类 – PHP简单HTML DOM解析器。simplehtmldom_1_5 // 从URL或文件创建DOM$html = file_get_html('http://www.google.com/');//查找所有图像 foreach($html-find ('img') as $element) echo $element-src 。 'br';/

ThinkPHP怎么导入第三方类库ThinkPHP怎么导入第三方类库

03Jun2023

  第三方类库  第三方类库指除了ThinkPHP框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如Smarty、Zend等系统的类库等。  前面使用自动加载或import方法导入的类库,ThinkPHP约定是以.class.php为后缀的,非这类的后缀,需要通过import的参数来控制。  但对第三类库,由于不会有此约定,其后缀只能认为是php。为了方便的引入其他框架和系统的类库,ThinkPHP特意提供了导入第三方类库的功能。第三方类库统一放置在ThinkPHP系统目录/

使用jquery.noConflict()解决jquery库与其他库冲突的问题使用jquery.noConflict()解决jquery库与其他库冲突的问题

20Jun2017

在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突;若是发生冲突后,可以通过以下几种方案进行解决:一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如:

See all articles