thinkphp 分析3 标签

通过标签可以扩展解析php或者html

每个标签库对应一个标签驱动类。

驱动的扩展目录位于 Extend/Driver/TagLib    TagLib+标签库名称(首字母大写)

具体参考ThinkPHP3.0完全开发手册。

首先需要定义标签库的标签定义,标签定义包含了所有标签库中支持的所有标签,定义方式如下:

protected $tags   =  array(

  // 定义标签

'input'=>array('attr'=>'type,name,id,value','close'=>0), // input标签

);

标签库的所有支持标签都在tags属性中进行定义,tags属性是一个二维数组,每个元素就是一个标签定义,索引名就是标签名,采用小写定义,调用的时候不区分大小写。

每个标签定义支持的属性包括:

属性名

说明

attr

标签支持的属性列表,用逗号分隔

close

标签是否为闭合方式 (0闭合 1不闭合),默认为不闭合

level

标签的嵌套层次(只有不闭合的标签才有嵌套层次)

alias

标签别名

定义了标签属性后,就需要定义每个标签的解析方法了,每个标签的解析方法在定义的时候需要添加“_”前缀,可以传入两个参数,属性字符串和内容字符串(针对非闭合标签)。必须通过return 返回标签的字符串解析输出,在标签解析类中可以调用模板类的实例。下面是一个input解析方法的定义:

    public function _input($attr,$content)   {

        $tag    = $this->parseXmlAttr($attr,'input');

        $name   =   $tag['name'];

       $id   =          $tag['id'];

        $type   =   $tag['type'];

        $value   =   $this->autoBuildVar($tag['value']);

$str = '<input type="'.$type.'" id="'.$id.'"name="'.$name.'" value="'.$value.'" />';

        return $str;

    }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值