国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

dedecms模板原理,實(shí)現(xiàn)標(biāo)簽替換

2024-07-12 09:11:22
字體:
供稿:網(wǎng)友
正則匹配出所有的arclist標(biāo)簽并構(gòu)造SQL
 
取出數(shù)據(jù)并替換field為相應(yīng)字段的數(shù)據(jù)
 
為field標(biāo)簽添加一個function屬性
 
<?php
 
require_once(dirname(__FILE__)."/../include/common.inc.php");
 
//1. 讀入模板文件
 
$str = file_get_contents('test.html');
 
//2. 使用正則匹配出頁面中所有的 arclist 標(biāo)簽
 
$re = '/{dede:arclist(.*)}(.*){//dede:arclist}/Us';
 
// 執(zhí)行正則匹配
 
// 第一個參數(shù):正則 
 
// 第二個參數(shù):字符串
 
// 第三個參數(shù):這個函數(shù)會把匹配到的結(jié)果放第三個參數(shù)的數(shù)組中
 
// 返回值:匹配到的個數(shù)
 
preg_match_all($re, $str, $a);
 
//3. 循環(huán)每一個匹配到的arclist標(biāo)簽進(jìn)行處理 
 
foreach ($a[0] as $k => $v)
 
{
 
   /****************處理標(biāo)簽1.根據(jù)標(biāo)簽上的屬性構(gòu)造一個SQL語句 **************/
 
   // 取出標(biāo)簽相應(yīng)的屬性字符串并把屬性轉(zhuǎn)化成一個數(shù)組,如 row="10" channelid="17" addfields="pffz,pfrs,yuyan" orderby="id" orderway="desc"
 
   $attrArr = strToArray($a[1][$k]);
 
   // 根據(jù)構(gòu)造構(gòu)造SQL語句上的變量
 
   if(isset($attrArr['row']))
 
       $limit = $attrArr['row'];
 
   else
 
       $limit = 20;
 
   if(isset($attrArr['orderby']))
 
       $orderby = $attrArr['orderby'];
 
   else
 
       $orderby = 'id';
 
   if(isset($attrArr['orderway']))
 
       $orderway = $attrArr['orderway'];
 
   else
 
       $orderway = 'desc';
 
   // 連表的屬性
 
   if(isset($attrArr['channelid']))
 
       $leftJoin = ' LEFT JOIN dede_addon17 b ON a.id=b.aid ';
 
   else
 
       $leftJoin = '';
 
   if(isset($attrArr['addfields']))
 
       $extraFields = ','.$attrArr['addfields'];
 
   else
 
       $extraFields = '';
 
   // 解析屬性
 
   
 
   $sql = "SELECT a.*$extraFields
 
           FROM dede_archives a $leftJoin
 
            ORDER BY $orderby $orderway
 
            LIMIT $limit";
 
   $dsql->Execute('me', $sql);
 
   $html = '';
 
   // 每個arclist對應(yīng)的多個數(shù)據(jù)
 
   while($row = $dsql->GetArray('me'))
 
   {
 
       // 重置模板字符串,不要在原模板上面進(jìn)行替換
 
       $_tep = $a[2][$k];
 
       /**
 
       <li>
 
           <img src="[field:litpic/]" /><br />
 
            標(biāo)題:[field:title/]<br />
 
            評分分值:[field:pffz    function="getSmallStar(@me)"/]<br />
 
            評分人數(shù):[field:pfrs/]<br />
 
            語言:[field:yuyan/]
 
       </li>
 
   **/
 
       // 把字符串中的[field:xxxx/]替換成$row['xxxx']變量。
 
       $_re = '//[field:(/w+)(/s+function=("|/')(/w+)/((.*)/)/3)?///]/U';
 
       preg_match_all($_re, $_tep, $_a);
 
       /**
 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 墨玉县| 延吉市| 炎陵县| 饶阳县| 广东省| 济阳县| 霍州市| 湛江市| 治多县| 达尔| 抚松县| 临沧市| 彭阳县| 上栗县| 黄梅县| 南宁市| 湖南省| 潍坊市| 高邑县| 长寿区| 虹口区| 灌南县| 汾阳市| 鄂州市| 都安| 昆山市| 凭祥市| 仁怀市| 南宫市| 中西区| 荆门市| 金坛市| 乌兰察布市| 琼结县| 尚义县| 平果县| 工布江达县| 新龙县| 高阳县| 虹口区| 海宁市|