ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp カスタム タグ、直接タグ接続データを表示_PHP チュートリアル

thinkphp カスタム タグ、直接タグ接続データを表示_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:47:46954ブラウズ

まず第一に、次のことを行う必要があります

TagLibZpass.class.php という名前のファイルを ThinkPHPLibThinkTemplateTagLib ディレクトリに追加します

TagLibZpass.class.php:

/* Zpass カスタム ラベル デザインは zpass 16852868@qq.com です。QQ 友達を追加しないでください - -!

クラス TagLibZpass は TagLib を拡張します{

// タグ定義

protected $tags = array(

// タグ定義: attr 属性リスト close 閉じているかどうか (0 または 1、デフォルト 1) エイ​​リアスタグ エイリアスレベル ネストレベル

'select'=>array('attr'=>'table,limit,order,where,field','level'=>3),

);

パブリック関数 _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($タグ['フィールド'])->select();

Preg_match_all("/[フィールド: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;

}その他{

$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);

}

戻ります;

}

}

?>

次に、ビューに

を書き込みます

呼び出しメソッドは

[field:title]< /スパン>

                                                                                                                                                                  

これはわかりやすいですねwww.2cto.com

これは単なる例であり、THINKPHP タグを自由に拡張できることを意味します...独自の特別なタグを作成してください

上記のタグの例は、実際にクラス テーブルの内容をクエリします

http://www.bkjia.com/PHPjc/478489.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478489.html技術記事まず、次の名前のファイルを追加する必要があります: TagLibZpass.class.php TagLibZpass.class.php を ThinkPHPLibThinkTemplateTagLib ディレクトリに: ?php /* Zpass カスタム タグ設計 by zpass 1685...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。