您好,欢迎访问一九零五行业门户网

thinkphp自定义标签,view直接标签连接数据_PHP教程

首先,需要在
thinkphp\lib\think\template\taglib\目录下增加一个文件名叫:taglibzpass.class.php
taglibzpass.class.php:
array('attr'=>'table,limit,order,where,field','level'=>3), 
        ); 
    public function _select($attr,$content) 
    { 
        static $_iterateparsecache = array(); 
        //如果已经解析过,则直接返回变量值 
        $cacheiterateid = md5($attr.$content); 
        if(isset($_iterateparsecache[$cacheiterateid])) 
            return $_iterateparsecache[$cacheiterateid]; 
        $tag      = $this->parsexmlattr($attr,'table'); 
        $db=m($tag['table']); 
        $list=$db->where($tag['where'])->order($tag['order'])->limit($tag['limit'])->field($tag['field'])->select(); 
        preg_match_all(/\[field\:\w*\]/,$content,$match); 
        $match=$match[0]; 
        $match=array_unique($match);//去掉数组重复项 
        foreach($match as $i=>$vo){ 
            $field[$i]=substr($vo,7,count($vo)-2);   
        } 
        foreach($list as $i=>$value){ 
            if($i==0){ 
                $parsestr=$content; 
            }else{ 
                $parsestr=$parsestr.$content; 
            } 
            foreach($match as $j=>$vo){ 
                $parsestr=str_replace($vo,$value[$field[$j]],$parsestr); 
            } 
        } 
        $_iterateparsecache[$cacheiterateid] = $parsestr; 
        if(!emptyempty($parsestr)) { 
            return $this->tpl->parse($parsestr); 
        } 
        return ; 
    } 

?>
然后在视图上写上
调用的方法是
[field:title]
这个很容易理解吧www.2cto.com
我这个只是例子,代表可以自由扩展thinkphp标签...做自己的特色标签
以上标签例子实际是查询classes表里的内容
http://www.bkjia.com/phpjc/478489.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/478489.htmltecharticle首先,需要在 thinkphp\lib\think\template\taglib\目录下增加一个文件名叫:taglibzpass.class.php taglibzpass.class.php: ?php /* zpass自定义标签 design by zpass 1685...
其它类似信息

推荐信息