ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp カスタム タグ、直接タグ接続データを表示_PHP チュートリアル
まず第一に、次のことを行う必要があります
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 タグを自由に拡張できることを意味します...独自の特別なタグを作成してください
上記のタグの例は、実際にクラス テーブルの内容をクエリします