thinkphp和ecmall是怎么输出模板

thinkphp2.1

  thinkTemplate.class.php,

  public function load($templateFile,$templateVar,$charset)

 {

       $this->tVar=$templateVar;

       /*

            loadTemplate($templateFile);主要是编译模板,并返回编译后文件的路径。

              如,模板index.html中有

                      <volist name='test' id='t'>

                                {$t.title}

                     </volist>

             则这里的代码编译为如

           <?php 

                     foreach($test as $key=>$val)

                          echo $t['title']

           ?>

         等类似的代码

          并返回编译完成后的文件的路径,如

            Runtime/Cache/0573c70d8602d961e53f714ea77bd87c.php

        */

       $templateCacheFile=$this->loadTemplate($templateFile);

       extract($templateVar,EXTR_OVERWRITE);//这个函数就是让数组的键为变量,该数组元素的值为该变量的值

       include $templateCacheFile;

 }



ecmall 2.2.1

  template.php,

     function _eval($content)

    {

            ob_start();

          /*

                  这是关键的一句,$content为编译后的缓存的内容,'?'.'>'不能少否则出错,'? >'意思是让php代码结束(具体了解可能还要去看eval实现的原理)。

                   在这里eval让$content中的<?php ....?>之类的代码等到执行,里面的$this代指eval函数所在的类

          */

             eval('?'.'>'.trim($content));

            $content=ob_get_contents();

            ob_end_clean();

             return $content;

    }

接着在

display($filename,$cache_id='')中输出$content,如echo  $out;


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值