x_tiny_tpl - php 模板 class


BSD
跨平台
PHP

软件简介

这是一个php模板class,之前我一直使用(Ease
Template:http://www.systn.com/data/et/1.html),后因不支持php7,然后就重写了。

XTinyTpl和Ease Template语法类似,功能相对少了一些,主要是自用,因现在不经常用php,所以维护不及时,请谅解。

php版本:php5.3以上

XTinyTpl文件小,运行速度快。支持模板变量、循环、判断、php函数、php代码段。

使用说明请查看:doc.html

PHP:

<?php
include('lib/XTinyTpl.class.php');
$tpl = new XTinyTpl(array(
    'rootPath' => dirname(__FILE__),
    'webPath' => '/test/xtpl',
    'tplPath' => 'tpl',
    'cachePath' => 'cache',
    'extName' => '.html',
    'regGlobal' => true,
    'mergeInclude' => false
));

$list = array(
    array(
        'name' => '张三',
        'list' => array(
            array(
                'sub_name' => 'aaa1'
            ),
            array(
                'sub_name' => 'aaa2'
            )
        )
    ),
    array(
        'name' => '李四',
        'list' => array(
            array(
                'sub_name' => 'bbb1'
            ),
            array(
                'sub_name' => 'bbb2'
            )
        )
    )
);
$tpl->setVar('a', 1);
$tpl->setVar($list);
$tpl->setVar(   
    array(  
        'var1'=>'123456',   
        'var2'=>'abcdefg',
    )
);


$tpl->out('test/test');

模板:

<!-- #include file="/inc/header.html" -->

<div class="item">
    <div class="title">变量</div>
    <div class="info">
        <div class="preview">
            变量1:{$var1}<br>
            变量2:{$var2}-${var2}<br>
            变量2:${substr($var1, 0, 3)}
        </div>  
    </div>
</div>

<div class="item">
    <div class="title">循环</div>
    <div class="info">
        <div class="preview">
            <ul>
            <!-- $list AS $k => $v -->
                <li>${k}--${v['name']}
                    <ul>
                    <!-- $list AS $v2 -->
                        <li>    ${v2['name']}</li>
                    <!-- end -->
                    </ul>
                </li>
            <!-- end -->
            </ul>

            <!-- while:$i<10 -->  
                <!--{$i++;}-->
                ${i},
            <!-- end -->
        </div>
    </div>
</div>

<div class="item">
    <div class="title">逻辑判断</div>
    <div class="info">
        <div class="preview">
            <!-- IF[$a==1] -->   
            变量a为${a} 
            <!-- ELSE IF[$a==2] -->   
            变量a为${a}  
            <!-- ELSE -->   
            变量a为空   
            <!-- END -->   
        </div>
    </div>
</div>

<div class="item">
    <div class="title">内部引用</div>
    <div class="info">
        <div class="preview">
            <!-- #include file="/inc2/header_sub.html" -->
            {inc:/inc2/header_sub}
            <!-- inc:inc2/header_sub --> 
            {include file="/inc2/header_sub"}
        </div>
    </div>
</div>
<div class="item">
    <div class="title">路径解析</div>
    <div class="info">
        <pre class="code">
通过 $opt['path_replace'] = array('images'); 配置相对路径,程序会自动加上绝对路径。这样的好处是在做页面时,页面可直接浏览器预览
        </pre>
        <div class="preview">
            src="images/aaa.png"
        </div>
    </div>
</div>
<div class="item">
    <div class="title">嵌入PHP代码</div>
    <div class="info">
        <div class="preview">
            时间处理:{run:}echo date('Y-m-d H:i',time()){/run}  
            <br>   
            时间处理2:<!-- run: -->echo date('Y-m-d H:i:s',time())<!-- /run -->   
            <br>   
            条件判断1:{run:}if($a==1){echo '成立';}else{echo '失败';}{/run}   
            <br>   
            条件判断2:<!-- run: -->if($a==1){echo '成立';}else{echo '失败';}<!-- /run -->   
            <br>   
            条件判断3:${($a==1)?'成立':'失败'}
            <br>   
            条件判断4:<!--{echo ($a==1)?'成立':'失败';}--> 
        </div>
    </div>
</div>