成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > php tpl模板引擎定義與使用示例

php tpl模板引擎定義與使用示例

熱門標簽:哪里辦理400電話 長春人工外呼系統(tǒng)服務商 江西手機自動外呼防封系統(tǒng)是什么 仁和怎么申請400開頭的電話 怎么向銷售公司推銷外呼系統(tǒng) 高德地圖標注家 外呼系統(tǒng)撥打暫時無法接通 廣東地市地圖標注 廣州防封卡外呼系統(tǒng)多少錢一個月

本文實例講述了php tpl模板引擎定義與使用。分享給大家供大家參考,具體如下:

tpl.php

?php
namespace tpl;
/**
* Class Tpl
*/
class Tpl
{
  protected $view_dir;//模板文件
  protected $cache_dir;//緩存文件
  protected $lifetime;//過期時間
  protected $vars = [];//存放顯示變量的數(shù)組
   /**
   * Tpl constructor.
   * @param string $view_dir
   * @param string $cache_dir
   * @param string $lifetime
   */
  public function __construct($view_dir='', $cache_dir='', $lifetime='')
  {
    //如果模板文件不為空,則設置,為空則為默認值
    if (!empty($view_dir)) {
      if ($this->check_dir($view_dir)) {
        $this->view_dir = $view_dir;
      }
    }
    //如果緩存文件不為空,則設置,為空時為默認值
    if (!empty($cache_dir)) {
      if ($this->check_dir($cache_dir)) {
        $this->cache_dir = $cache_dir;
      }
    }
    //如果過期時間不為空,則設置,為空時為默認值
    if (!empty($lifetime)) {
      $this->lifetime = $lifetime;
    }
  }
   /**
   * 對外公開的方法
   * @param string $name
   * @param string $value
   */
  public function assign($name, $value)
  {
    $this->vars[$name] = $value;//將傳入的參數(shù)以鍵值對存入數(shù)組中
  }
   /**
   * 測試文件
   * @param $dir_path
   * @return bool
   */
  protected function check_dir($dir_path)
  {
    //如果文件不存在或不是文件夾,則創(chuàng)建
    if (!file_exists($dir_path) || !is_dir($dir_path)) {
      return mkdir($dir_path, 0777, true);
    }
    //如果文件不可讀或不可寫,則設置模式
    if (!is_writable($dir_path) || !is_readable($dir_path)) {
      return chmod($dir_path, 0777);
    }
    return true;
  }
   /**
   * 展示方法
   * @param $view_name
   * @param bool $isInclude
   * @param null $uri
   */
  public function display($view_name, $isInclude=true, $uri=null)
  {
    //通過傳入的文件名,得到模板文件路徑
    $view_path = rtrim($this->view_dir, '/') . '/' . $view_name;
    //判斷路徑是否存在
    if (!file_exists($view_path)) {
      die('文件不存在');
    }
    //通過傳入的文件名得到緩存文件名
    $cache_name = md5($view_name . $uri) . '.php';
    //緩過緩存文件名得到緩存路徑
    $cache_path = rtrim($this->cache_dir, '/') . '/' .$cache_name;
    //判斷緩存文件是否存在,如果不存在,重新生成
    if (!file_exists($cache_path)) {
      $php = $this->compile($view_path);//解析模板文件
      file_put_contents($cache_path, $php);//緩存文件重新生成
    } else {
      //如果緩存文件存在,判斷是否過期,判斷模板文件是否被修改
      $is_time_out = (filectime($cache_path) + $this->lifetime) > time() ? false : true;
      $is_change = filemtime($view_path) > filemtime($cache_path) ? true : false;
      //如果緩存文件過期或模板文件被修改,重新生成緩存文件
      if ($is_time_out || $is_change) {
        $php = $this->compile($view_path);
        file_put_contents($cache_path, $php);
      }
    }
    if ($isInclude) {
      extract($this->vars);//解析傳入變量的數(shù)組
      include $cache_path;//展示緩存
    }
  }
   /**
   * 正則解析模板文件
   * @param string $file_name
   * @return mixed|string
   */
  protected function compile($file_name)
  {
    $html = file_get_contents($file_name);//獲取模板文件
    //正則轉換數(shù)組
    $array = [
      '{$%%}' => '?=$\1?>',
      '{foreach %%}' => '?php foreach (\1): ?>',
      '{/foreach}' => '?php endforeach ?>',
      '{include %%}' => '',
      '{if %%}' => '?php if (\1): ?>',
      '{/if}' => '?php endif ?>',
      '{for %%}' => '?php for (\1): ?>',
      '{/for}' => '?php endfor ?>',
      '{switch %%}' => '?php switch (\1) ?>',
      '{/switch}' => '?php endswitch ?>'
    ];
    //遍歷數(shù)組,生成正則表達式
    foreach ($array AS $key=>$value) {
      //正則表達式,
      $pattern = '#' . str_replace('%%', '(.+?)' , preg_quote($key, '#')) . '#';
      if (strstr($pattern, 'include')) {
        $html = preg_replace_callback($pattern, [$this, 'parseInclude'], $html);
      } else {
        $html = preg_replace($pattern, $value, $html);
      }
    }
    return $html;
  }
   /**
   * 處理include表達式
   * @param array $data
   * @return string
   */
  protected function parseInclude($data)
  {
    $file_name = trim($data[1], '\'"');
    $this->display($file_name, false);
    $cache_name = md5($file_name) . '.php';
    $cache_path = rtrim($this->cache_dir, '/') . '/' . $cache_name;
    return '?php include "'.$cache_path.'" ?>';
  }
}

user_tpl,,,,從數(shù)據庫中取值,作為參數(shù)傳到模板文件,再解析模板文件

?php
include './sql/pdo.sql.php';
include 'tpl.php';
 $tpl = new tpl\Tpl('./view/', './cache/', 3000);
$link = new pdo_sql();
$dat = ['menu_name', 'menu_url'];
$res = $link->table('blog_menu')->field($dat)->order('id ASC')->select();
$tpl->assign('menu', $res);
$tpl->display('index.html');

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP模板技術總結》、《PHP基于pdo操作數(shù)據庫技巧總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據庫操作入門教程》及《php常見數(shù)據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • ThinkPHP使用smarty模板引擎的方法
  • 需要使用php模板的朋友必看的很多個頂級PHP模板引擎比較分析
  • PHP模板引擎Smarty的緩存使用總結
  • PHP原生模板引擎 最簡單的模板引擎
  • php模板引擎技術簡單實現(xiàn)
  • PHP中MVC模式的模板引擎開發(fā)經驗分享
  • 在Yii框架中使用PHP模板引擎Twig的例子
  • 簡單的自定義php模板引擎
  • PHP模板引擎Smarty中變量的使用方法示例
  • TMDPHP 模板引擎使用教程
  • Pain 全世界最小最簡單的PHP模板引擎 (普通版)

標簽:黔東 惠州 梅河口 海北 文山 濮陽 廈門 湘西

巨人網絡通訊聲明:本文標題《php tpl模板引擎定義與使用示例》,本文關鍵詞  php,tpl,模板,引擎,定義,與,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《php tpl模板引擎定義與使用示例》相關的同類信息!
  • 本頁收集關于php tpl模板引擎定義與使用示例的相關信息資訊供網民參考!
  • 推薦文章
    天堂影院一区二区| 一二三中文字幕在线| 综合一区av| 中文在线播放一区二区| 视频区 图片区 小说区| 欧美激情亚洲色图| 初尝黑人巨炮波多野结衣电影| 情趣视频网站在线免费观看| 嫩草嫩草嫩草嫩草嫩草| 欧美bbbbbbbbbbbb精品| 国产91在线免费| 91亚洲精品丁香在线观看| 精品国产一区二区三区久久久狼| 国产裸体舞一区二区三区| 成人h版在线观看| 91国产成人在线| 国产清纯在线一区二区www| 久草在线资源站资源站| 末成年女av片一区二区下载| 激情综合网站| 91一区二区| 99视频只有精品| 香蕉久久夜色精品国产使用方法| 亚洲国产精久久久久久| 999精品网| 欧美亚洲日本网站| 四虎国产精品永久在线| 在线看黄色的网站| 亚洲自拍偷拍网址| 3d动漫啪啪精品一区二区免费| 四虎5151久久欧美毛片| 国产精品美女一区二区在线观看| 国产精品久久久久蜜臀| 18岁以下禁止观看的美女视频| 日本私人网站在线观看| 亚洲综合免费视频| 不卡的看片网站| 污视频网站在线观看| 日韩高清二区| 羞羞视频免费| 波霸ol色综合久久| 精品国产乱码久久久久夜深人妻| 91麻豆制片厂| 国产丝袜精品视频| 国产成人自拍视频在线| 在线天堂视频| 亚欧美一区二区三区| 91人人澡人人爽人人精品| 伊人久久大香伊蕉在人线观看热v| 色999日韩国产欧美一区二区| jizz免费视频| 亚洲三级一区| 亚洲一| 欧美另类自拍| 一区二区三区在线观看网站| 日本精品人妻无码77777| 国产精品一二三| 久久精品国产sm调教网站演员| 午夜少妇久久久久久久久| a级黄色一级片| 国产精品毛片久久久久久久av| 国模视频一区二区| 国产精品五区| 亚洲成年人影院在线| 亚洲福利一二三区| 国模私拍视频在线观看| 亚洲视频欧美视频| 成年人国产在线观看| 国产剧情一区在线| 高清视频在线www色| 日韩亚洲精品在线| 另类一区二区| 精品人妻一区二区三区免费| 91麻豆精品国产91| 国模吧无码一区二区三区| 高清欧美性猛交xxxx黑人猛交| 波多野结衣视频在线播放| 国内自拍视频一区| 国产精品一区二区日韩| 能看的毛片网站| 久久精品国产亚洲av香蕉| 国产精品高潮粉嫩av| 亚洲尤物视频网| 亚洲一区二区三区欧美| 潮喷失禁大喷水aⅴ无码| 国产精品久久久久久久久久久久久久| 九九久久成人| 另类中文字幕网| 超碰97免费在线| 香港三日本8a三级少妇三级99| 日日噜噜噜夜夜爽爽狠狠视频| 欧美日韩国产不卡在线看| 午夜欧美一区二区三区免费观看| 奇门遁甲1982国语版免费观看高清| 亚洲高清资源| 国产精品亚洲欧美日韩一区在线| 亚洲二区av| 影音先锋制服丝袜| aiai久久| 好吊成人免视频| 国产粉嫩一区二区三区在线观看| 国产精品久久久久久成人| 91porn在线| 看电视剧不卡顿的网站| 精品一区二区无码| 亚洲第一区中文字幕| 日日噜噜噜夜夜爽爽狠狠视频| 欧美影片第一页| 欧美国产乱子伦| 国产精品嫩草影院俄罗斯| 国产在线一在线二| 日韩不卡一二区| 最新av网址在线观看| 久久网这里都是精品| 欧美久久99| 亚洲国产高清福利视频| 国产成人久久精品77777| 成人国产精品免费观看| 国产美女久久| 三级影片在线观看| 成人3d动漫一区二区三区91| 性欧美videos另类hd| 桃花视频大全不卡免费观看网站| 国产成人精品综合网站| 成人在线综合网站| 国产主播精品在线| 国产国语刺激对白av不卡| 免费观看欧美成人禁片| 99精品视频免费观看| 奇米777国产一区国产二区| 九色porny91| 日本一二三区在线视频| 欧美人与性动交α欧美精品济南到| 18黄暴禁片在线观看| 国产一精品一aⅴ一免费| 国产亚洲欧美色| 成人免费视频网站| 国产二级一片内射视频播放| 国产精品久久久久久久蜜臀| 久久爱91午夜羞羞| 精品久久久久久中文字幕一区奶水| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美精品免费看| 欧美一进一出视频| 欧美另类变人与禽xxxxx| 亚洲高清视频免费观看| 粉嫩av一区二区三区免费野| 黄色欧美在线| 二区三区在线| 一区二区三区四区蜜桃| 亚洲国产精品久久人人爱| 欧美体内she精视频在线观看| 香蕉久久夜色精品国产| 成人一区在线观看| 国产精品成人**免费视频| 日日碰狠狠添天天爽超碰97| 中文日韩欧美| 乱亲女秽乱长久久久| 亚洲va男人天堂| 一本本久综合久久爱| 国产人妻精品一区二区三区不卡| 日韩大片在线播放| 黑人中文字幕一区二区三区| 中文在线网在线中文| 992tv在线成人免费观看| 亚洲青青青在线视频| 日韩中文字幕视频| 91影院在线观看| 国产麻豆高清视频在线第一页| 五月婷婷欧美视频| 欧美精品一区二区在线播放| 欧美极品中文字幕| 九九精品调教| 神马午夜在线观看| 亚洲欧美国产va在线影院| 日韩高清一级片| 日本一二三区在线视频| 久久午夜av| 超薄肉色丝袜脚交一区二区| 能在线看的av| 亚洲图片欧美在线| 成人黄色在线视频| 国产精品视频网| 亚洲欧美日韩国产成人综合一二三区| 一本一本久久a久久精品综合小说| 国产成人生活片| 一个人免费视频www在线观看| 男女污视频在线观看| 国产一区二区免费在线| 黑人巨大猛交丰满少妇| 熟女俱乐部一区二区| 色偷偷网友自拍| 亚洲一区二区三区视频在线| 九九九久久久久久久| eeuss性xxxxxx电影| 国产精品99久久| 成人短视频app| 蜜乳av一区二区三区| 日韩视频精品在线| 日韩欧美国产免费| 欧美伊人精品成人久久综合97| 99久久自偷自偷国产精品不卡| 女同激情久久av久久| 亚洲人成电影网站色mp4| 国产精品免费一区| 国产美女高潮视频| 日本免费久久高清视频| 国产一区白浆| 丁香婷婷综合激情| 亚洲视频在线观看一区二区| 国产乱对白刺激视频不卡| 一区二区三区四区在线看| 欧美精品一区二区三区四区五区| 影音先锋中文字幕第一页| 午夜久久中文| 制服丝袜激情欧洲亚洲| 国产精品羞羞答答在线| 亚洲黄色一区二区三区| 免费在线黄色av| 素人一区二区三区| 一区二区三区精彩视频| 欧美成人精品在线观看| 久热精品在线观看| 日韩亚洲成人av在线| 青青草国产免费| 91九色精品| 成人全视频免费观看在线看| 丁香花五月婷婷| 亚洲欧美va天堂人熟伦| 欧美日韩国产网站| 精品国产一区二区三区av性色| 91丝袜美腿高跟国产极品老师| 午夜视频在线免费| 在线视频二区| 中文字幕精品一区二| 亚洲激情在线观看视频| 午夜精品久久久久久久久久| 曰皮视频在线播放免费的| 日韩av在线播| 日韩专区视频网站| 亚洲一级免费毛片| 91久久偷偷做嫩草影院电| 日韩女优视频免费观看| 久久久久久亚洲综合| 久久久久久亚洲精品| 国产乱人伦精品一区二区| 色婷婷一区二区三区av免费看| 亚洲欧美国产一区二区三区| 欧美另类一区| 国产不卡一二三区| 仙踪林久久久久久久999| 日韩精品第一| 国产午夜小视频| 欧美午夜精品久久久久免费视| 国产视频精品免费| 国产亚洲自拍一区| 成人精品一区二区| 日韩免费观看一区二区| 色狮一区二区三区四区视频| 亚洲国产日韩成人综合天堂| 91女神在线观看| 日韩午夜在线播放| 亚洲天堂久久av| 国产综合色区在线观看| 欧美午夜精品久久久久久蜜| 日韩精品一区二区三区老鸭窝| 91久久精品美女高潮| 久久精品第九区免费观看| 9999精品成人免费毛片在线看| 国产精品午夜剧场| 日本全棵写真视频在线观看| 男人的天堂亚洲| 性欧美精品中出| 日韩欧美综合在线| 欧美色图片你懂的| 亚洲成人av一区二区| 国产福利三区| 国产一区二区免费看| 国外色69视频在线观看| 999久久久精品一区二区| 亚洲成人国产精品| 欧美另类视频在线观看| 亚洲一区不卡在线| 中文字幕久精品免费视频| 欧美一区二区影视| 久久久精品久久久| 欧美色电影在线| 成年人视频免费在线播放| 日本福利片在线观看| 久久国产黄色片| 亚洲区一区二区三| 久久99国产综合精品免费| 久久亚洲国产| 国产日韩欧美综合精品| 精品一区二区三区免费毛片| 国产精品久久久久999| 成人精品网站在线观看| 丝袜美腿美女被狂躁在线观看| 国产免费av国片精品草莓男男| 国产一区二区三区四区五区加勒比| 亚洲午夜女主播在线直播| 精品国产一区二区三区四区在线观看| 99免费精品| 91久久免费视频| 国产亚洲高清在线观看| 91好色先生tv| 成年人的黄色片| 91免费看片在线| 亚洲美女自拍偷拍| 丰满爆乳一区二区三区| fc2成人免费人成在线观看播放| 亚洲精选在线观看| 国产精品r级在线| 亚洲黄色在线| 国产中年熟女高潮大集合| 日本夜夜草视频网站| 水蜜桃一区二区| 亚洲国产欧美在线成人app| 午夜精品久久久久久久91蜜桃| 日韩精品国产一区| 国产精品久久久久久久久久免费| 欧美精品在线观看91| 黄色成人精品网站| 国产亚洲欧美日韩精品一区二区三区| 久久这里只有精品首页| 黑人乱码一区二区三区av| 欧美二区乱c少妇| 日韩欧美中文在线视频|