亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? template.inc.php

?? M-logger v0.3.1 中文版
?? PHP
字號:
<?php/*** Title: Template* File(s): template.inc.php* Author:  episome <webmaster@3ants.org>* Modify:  milkliker* Website: http://3ants.org/* Version: 0.0.4* Last changed: 21:09 04-8-4** This template class is modifyed from PHPBB2 templates By Nathan Codding* It is free software; you can redistribute it and/or modify..*/class Template {var $show_err_msg = true;var $root = '';var $cacheDir = '';var $files = array();var $_tpldata = array();var $compiled_code = array();var $uncompiled_code = array();/*** Constructor. Simply sets the root dir & cache dir.*/function Template($root = './',$cacheDir = 'cache/'){if (substr($root,-1) != '/')$root.='/';if (substr($cacheDir,-1) != '/')$cacheDir.='/';if (!is_dir($root)) {$this->_halt("set_root: $root is not a directory.");}if (!is_dir($cacheDir) && !@mkdir($cacheDir,0777)){$this->_halt("set cache dir: $cacheDir is not a directory.");}if (!is_writable($cacheDir) && !@chmod($cacheDir,0777)){$this->_halt("set cache dir: $cacheDir is not writeable.");}$this->root = $root;$this->cacheDir = $cacheDir;}function eraser($tagName) {unset($this->_tpldata[$tagName]);}/*** Halt message*/function _halt($msg) {printf("<br><b>Template Error:</b> %s<br>\n", $this->show_err_msg ? $msg :'Halted!');die();}/*** Sets the template filename for handle. 設置模板文件*/function set_file($varname,$filename){$this->files[$varname] = $this->root.$filename;if (!file_exists($this->files[$varname])){$this->_halt('Filename: file ['.$this->files[$varname].'] does not exist.');}}/*** Sets the template filenames for handles. 設置模板文件*/function set_files($varnames){foreach($varnames as $handle=>$filename){$this->set_file($handle,$filename);}}/*** 設置頂級變量,如果變量存在則被覆蓋*/function set_var($varname, $varval){$this->_tpldata['.'][0][$varname] = $varval;}function set_vars($vararray) {foreach($vararray as $key => $val) {$this->_tpldata['.'][0][$key] = $val;}}/*** 設置區塊變量*/function set_block_var($blockname,$varname=null,$varvalue=null){$this->set_block_vars($blockname,array($varname=>$varvalue));}function set_block_vars($blockname, $vararray=null){if (strstr($blockname, '.')){ // Nested block.$blocks = explode('.', $blockname);$blockcount = count($blocks) - 1;$str = &$this->_tpldata;for ($i = 0; $i < $blockcount; $i++){$str = &$str[$blocks[$i]];$str = &$str[count($str) - 1];}$str[$blocks[$blockcount]][] = $vararray;}else{$this->_tpldata[$blockname][] = $vararray;}return true;}/*** 導入模板文件*/function _loadfile($handle){if (isset($this->uncompiled_code[$handle]) and !empty($this->uncompiled_code[$handle])){return true;}if (!isset($this->files[$handle])){$this->_halt("Template->loadfile(): No file specified for handle $handle");}$templateData=@file($this->files[$handle]);foreach($templateData as $value){$str.=trim($value)."\n";}$this->uncompiled_code[$handle] = $str;}/*** 導入模板,編譯模板(如果cache過期或不存在),執行編譯后模板*/function pparse($handle){$cacheFile = $this->cacheDir.'template['.str_replace('/','~',$this->files[$handle]).'].cache.php';if(@filemtime($cacheFile)<@filemtime($this->files[$handle])) {$this->_loadfile($handle);$this->compiled_code[$handle]=$this->_compile($this->uncompiled_code[$handle]); // Actually compile the code now.$fp = fopen($cacheFile,'w+');fwrite($fp,$this->compiled_code[$handle]);fclose($fp);}include_once($cacheFile);}/*** Compiles the given string of code 編譯模板文件*/function _compile($code){// 替換BLOCK里層標簽$varrefs = array();preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs);$varcount = count($varrefs[1]);for ($i = 0; $i < $varcount; $i++){$namespace = $varrefs[1][$i];$varname = $varrefs[3][$i];$new = $this->generate_block_varref($namespace, $varname);$code = str_replace($varrefs[0][$i], $new, $code);}// 替換外層標簽$code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '<?=$this->_tpldata[\'.\'][0][\'\\1\']?>', $code);// 分割$code_lines = explode("\n", $code);$block_nesting_level = 0;$block_names = array();$block_names[0] = '.';$m=array();// 逐行掃描$line_count = count($code_lines);for ($i = 0; $i < $line_count; $i++){$code_lines[$i] = rtrim($code_lines[$i]);if (preg_match('#<!-- BEGIN (.*?) -->#', $code_lines[$i], $m)){// BEGIN 和 END 在同一行$n = $m;if (preg_match('#<!-- END (.*?) -->#', $code_lines[$i], $n)){$block_nesting_level++;$block_names[$block_nesting_level] = $m[1];if ($block_nesting_level < 2){// Block is not nested. // 非巢狀標簽$code_lines[$i] = preg_replace('#<!-- BEGIN (.*?) -->#','<?/*'.$m[1].'*/foreach((array)$this->_tpldata[\'' .$n[1].'\'] as $'.$m[1].'){?>',$code_lines[$i]);}else{// This block is nested.巢狀標簽$namespace = substr(implode('.', $block_names), 0, -1);$namespace = substr($namespace, 2);$varref = $this->generate_block_data_ref($namespace, false);$code_lines[$i] = preg_replace('#<!-- BEGIN (.*?) -->#','<?/*'.$m[1].'*/foreach((array)'.$varref.' as $'.$m[1].'){?>',$code_lines[$i]);}// We have the end of a block.unset($block_names[$block_nesting_level]);$block_nesting_level--;$code_lines[$i]=preg_replace('#<!-- END (.*?) -->#','<?};/*'.$n[1].'*/?>',$code_lines[$i]);$m = $n;}else{// We have the start of a block.$block_nesting_level++;$block_names[$block_nesting_level] = $m[1];if ($block_nesting_level < 2){// Block is not nested.$code_lines[$i] = preg_replace('#<!-- BEGIN (.*?) -->#','<?/*'.$m[1].'*/foreach((array)$this->_tpldata[\'' .$m[1].'\'] as $'.$m[1].'){?>',$code_lines[$i]);}else{$namespace = implode('.', $block_names);$namespace = substr($namespace, 2);$varref = $this->generate_block_data_ref($namespace, false);$code_lines[$i] = preg_replace('#<!-- BEGIN (.*?) -->#','<?/*'.$m[1].'*/foreach((array)' .$varref.' as $'.$m[1].'){?>',$code_lines[$i]);}}}elseif (preg_match('#<!-- END (.*?) -->#', $code_lines[$i], $m)){// 結束一個 blockunset($block_names[$block_nesting_level]);$block_nesting_level--;$code_lines[$i]=preg_replace('#<!-- END (.*?) -->#','<?};/*'.$m[1].'*/?>',$code_lines[$i]);}}$code = implode("\n", $code_lines);return $code;}/*** 替換 Block 變量*/function generate_block_varref($namespace, $varname){$namespace = substr($namespace, 0, strlen($namespace) - 1);return '<?='.$this->generate_block_data_ref($namespace, true).'[\''.$varname.'\']?>';}/*** 根據 Block name 取得輸出變量名稱:* 包括上級變量則返回 $parent['self'] 否則返回 $self(用于foreach循環)*/function generate_block_data_ref($blockname, $include_last_iterator=false){$blocks = explode('.', $blockname);$blockcount = count($blocks) - 1;return ($include_last_iterator)? '$'.$blocks[$blockcount] : '$'.$blocks[$blockcount-1].'[\''.$blocks[$blockcount].'\']';}function set_var_from_handle($varname, $handle)	{$this->set_var($varname,'<?$this->pparse(\''.$handle.'\')?>');}}?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本特黄久久久高潮| 五月天久久比比资源色| 欧美三级电影网| 国内偷窥港台综合视频在线播放| 亚洲男女毛片无遮挡| 欧美成人a∨高清免费观看| 91九色最新地址| 成人性视频免费网站| 秋霞午夜av一区二区三区| 亚洲乱码国产乱码精品精的特点| 日韩精品一区二区三区四区视频 | 91原创在线视频| 精品无人区卡一卡二卡三乱码免费卡| 亚洲激情成人在线| 中文字幕欧美国产| 精品国产一区二区在线观看| 欧美精品欧美精品系列| 91视频国产资源| 成人深夜视频在线观看| 激情成人午夜视频| 美国av一区二区| 婷婷六月综合网| 亚洲综合成人网| 亚洲欧洲av色图| 国产精品久久三| 国产精品婷婷午夜在线观看| 久久久久久久久久久久久女国产乱| 欧美日本韩国一区二区三区视频 | 久久综合久久鬼色中文字| 欧美一区二区观看视频| 欧美妇女性影城| 欧美视频自拍偷拍| 一本大道av一区二区在线播放| 成人福利视频网站| 成人性生交大片免费看中文| 国产成+人+日韩+欧美+亚洲| 国产一区不卡精品| 国产一区二区三区精品视频| 国内外精品视频| 国产精品一区二区黑丝| 国产一区二区三区电影在线观看 | 成人a区在线观看| 成人激情午夜影院| 成人午夜视频在线观看| voyeur盗摄精品| 97久久人人超碰| 在线欧美一区二区| 欧美日韩www| 欧美一级在线免费| 日韩一区二区三区高清免费看看 | 亚洲精品免费在线播放| 亚洲欧美日韩国产另类专区| 亚洲美女偷拍久久| 亚洲小说欧美激情另类| 亚洲第一在线综合网站| 天涯成人国产亚洲精品一区av| 日韩一区欧美二区| 美脚の诱脚舐め脚责91| 国产精品1区2区3区| 成人激情免费视频| 在线观看日产精品| 欧美一级午夜免费电影| 久久精品一区四区| 亚洲欧美日韩国产综合在线| 五月婷婷激情综合| 国内外成人在线| 色综合久久综合网97色综合| 欧美丝袜第三区| 精品福利视频一区二区三区| 国产欧美一区二区三区沐欲| 亚洲日本在线a| 日本欧美一区二区| 国产成人av电影免费在线观看| 色婷婷国产精品综合在线观看| 欧美精品第1页| 国产欧美日韩三区| 一级精品视频在线观看宜春院| 日韩和欧美一区二区三区| 国模冰冰炮一区二区| 91麻豆福利精品推荐| 3751色影院一区二区三区| 国产精品天干天干在观线| 亚洲综合丝袜美腿| 国产精品 欧美精品| 欧美性猛片xxxx免费看久爱| 精品福利在线导航| 亚洲三级在线看| 国产综合色在线| 欧洲一区在线电影| 国产午夜精品福利| 午夜精品久久久| 粉嫩av一区二区三区粉嫩| 91 com成人网| 亚洲婷婷综合色高清在线| 激情都市一区二区| 欧美日韩精品综合在线| 亚洲欧洲性图库| 看电影不卡的网站| 欧美日韩亚洲综合在线| 国产色产综合产在线视频| 日韩制服丝袜先锋影音| 成人av资源网站| 久久丝袜美腿综合| 日产欧产美韩系列久久99| 99精品久久只有精品| 久久精品人人做人人爽人人| 午夜精品福利一区二区三区av | 欧美日韩一二三| 中文字幕中文字幕一区二区| 麻豆精品视频在线| 欧美性一二三区| 亚洲婷婷综合色高清在线| 国产精品自在在线| 日韩一二三区视频| 亚洲成人激情av| 欧美中文字幕久久| 亚洲丝袜精品丝袜在线| 福利一区福利二区| 久久综合狠狠综合| 男男视频亚洲欧美| 91精品国产综合久久久久久久| 一区二区三区四区亚洲| gogo大胆日本视频一区| 国产日韩精品一区二区三区| 国产一区欧美一区| 精品卡一卡二卡三卡四在线| 天堂av在线一区| 67194成人在线观看| 亚洲成在人线免费| 欧美日韩免费一区二区三区视频 | 日本不卡1234视频| 777午夜精品视频在线播放| 午夜亚洲国产au精品一区二区| 在线一区二区三区做爰视频网站| 亚洲欧美视频在线观看视频| 91亚洲午夜精品久久久久久| 1000部国产精品成人观看| a在线欧美一区| 中文字幕一区二区三区乱码在线| 懂色av一区二区三区免费看| 中文字幕精品三区| eeuss鲁片一区二区三区在线看| 国产精品国产精品国产专区不蜜| 成人精品一区二区三区四区| 中文字幕五月欧美| 91亚洲国产成人精品一区二区三| 亚洲女女做受ⅹxx高潮| 在线视频一区二区三| 亚洲永久精品国产| 6080yy午夜一二三区久久| 美日韩一区二区| 久久麻豆一区二区| www.av亚洲| 亚洲444eee在线观看| 日韩欧美色电影| 国产精品亚洲а∨天堂免在线| 国产精品入口麻豆原神| 99国产精品视频免费观看| 亚洲愉拍自拍另类高清精品| 91精品久久久久久久91蜜桃| 经典三级一区二区| 国产精品色哟哟网站| 欧美中文字幕一区二区三区| 青草国产精品久久久久久| 久久久99免费| 欧美综合一区二区| 免费三级欧美电影| 国产精品久久久久久久久免费樱桃| 色欧美片视频在线观看| 亚洲va欧美va人人爽午夜| 26uuu成人网一区二区三区| 91视频精品在这里| 人禽交欧美网站| 中文字幕亚洲精品在线观看| 在线不卡的av| 不卡的av电影在线观看| 性做久久久久久免费观看 | 亚洲国产成人91porn| www久久精品| 欧美色手机在线观看| 国产一区欧美二区| 亚洲电影一级黄| 欧美激情一区二区| 欧美情侣在线播放| 不卡在线观看av| 久久99精品国产麻豆不卡| 成人欧美一区二区三区白人| 欧美一级精品在线| 色婷婷精品久久二区二区蜜臂av| 久久国产婷婷国产香蕉| 亚洲精品国产第一综合99久久| 精品国内二区三区| 欧美日韩国产首页| 成人动漫一区二区在线| 日本欧美久久久久免费播放网| 亚洲欧洲在线观看av| 久久久久久久久久久久久女国产乱 | 久久国产综合精品| 一区二区三区高清| 国产亚洲综合在线|