六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

生成smarttemplate模板處理程序框架

[摘要]<?php/*** 生成smarttemplate模板處理程序框架* * smarttemplate 模板類具有極高的工作效率,代碼尺寸很小。* 他的可擴展模板函數更是有獨到之處。* * 盡管只有不多的幾個方法,使用起來也很簡單。* 但是在多此調整模板文件以后,要使處理程序與模板對應起來可是...
<?php
/**
* 生成smarttemplate模板處理程序框架
*
* smarttemplate 模板類具有極高的工作效率,代碼尺寸很小。
* 他的可擴展模板函數更是有獨到之處。
*
* 盡管只有不多的幾個方法,使用起來也很簡單。
* 但是在多此調整模板文件以后,要使處理程序與模板對應起來可是要花些工夫了。

* 本程序用于分析模板文件、并給出模板處理程序的框架
**/

ob_start();

$Template_name = "include/main.html";
$str = file_get_contents($Template_name);
preg_match_all("/<!--.*--> {\w.*}/U",$str,$regs);

$stack = array();
$vars = array();
$functions = array();
$key = 0; // = chr(ord("i")+count($stack));
$LF = "\r\n";
$outstr = "";
foreach($regs[0] as $v) {
if(preg_match_all("/<!-- BEGIN (\w+) -->/",$v, $r)) {
array_push($stack,$r[1][0]);
$k = chr(ord("i")+$key++);
$outstr .= str_repeat(chr(9), $key-1)."/* 對數組 \${$r[1][0]} 賦值 */$LF";
$outstr .= str_repeat(chr(9), $key-1)."for(\$$k=0;\$$k<1;\$$k++) \{$LF";
}elseif(preg_match_all("/<!-- END (\w+) -->/",$v, $r)) {
$v = array_pop($stack);
$outstr .= str_repeat(chr(9), --$key)."}$LF";
if($key) {
$k = chr(ord("i")+$key-1);
$p = $stack[$key-1];
$outstr .= str_repeat(chr(9), $key)."\${$p}[\$$k][$v] = \$$v;$LF";
}else
$outstr .= "\$data[$v] = \$$v;$LF";
}elseif(preg_match_all("/{(\w+)}/",$v, $r)) {
if(count($stack)) {
$v = $stack[$key-1];
$k = chr(ord("i")+$key-1);
$outstr .= str_repeat(chr(9), count($stack))."\${$v}[\$$k][{$r[1][0]}] = '{$r[1][0]}測試';$LF";
$ch = "\$data[".join("][][",$stack)."][{$r[1][0]}]";
if(! in_array($ch, $vars))
$vars[] = $ch;
}else
if(! in_array("\$data[{$r[1][0]}]", $vars)) {
$vars[] = "\$data[{$r[1][0]}]";
$outstr .= "\$data[{$r[1][0]}] = '{$r[1][0]}測試';$LF";
}
}elseif(preg_match_all("/{(\w+):([^}]+)/",$v, $r)) {
$ch = $r[1][0]."({$r[2][0]})";
$define = true;
if(! @include("smarttemplate_extensions/smarttemplate_extension_serverr.php"))
$define = false;
$functions[] = array(name=>$ch, define=>$define);
foreach(split(",",$r[2][0]) as $v)
if($v[0] != '"')
if(! in_array($v, $vars)) {
$vars[] = "\$data[$v]";
$outstr .= "\$data[$v] = '$v測試';$LF";
}
}elseif(preg_match_all("/<!-- IF (\w+)/",$v, $r)) {
if(! in_array("\$data[{$r[1][0]}]", $vars)) {
$vars[] = "\$data[{$r[1][0]}]";
$outstr .= "\$data[{$r[1][0]}] = '{$r[1][0]}測試';$LF";
}
}
}

echo <<< TEXT
<?php
/**
* 模板 $Template_name
* 使用了如下變量,請對其賦值

TEXT;

foreach($vars as $v)
echo " * $v$LF";

echo " *$LF";
echo " * 使用了如下模板函數$LF";
$ar = array();
foreach($functions as $k=>$v) {
echo " * $v[name]$LF";
if(! $v[define]) $ar[] = $k;
}
if(count($ar)) {
$path = "smarttemplate_extensions";
if(! is_dir($path)) {
mkdir($path,0666);
chmod($path,0666);
}
echo " *$LF";
echo " * 其中以下函數未定義,請定義$LF";
foreach($ar as $k) {
$v = $functions[$k][name];
$name = preg_replace("/(\w+).*/","\\1",$v);
echo " * $v => $path/{$path}_$name.php$LF";

$fp = fopen("$path/{$path}_$name.php","w");
fwrite($fp,"<?php$LF");
fwrite($fp,"function {$path}_$v \{$LF");
fwrite($fp," return '函數$v';$LF");
fwrite($fp,"}$LF?>$LF");
fclose($fp);
}
}
echo <<< TEXT
**/

/** 對模板變量賦值的可能形式 **/

TEXT;
echo $outstr;
echo <<< TEXT

/** 加載并執行模板 **/
require_once "class.smarttemplate.php";
\$page = new SmartTemplate("$Template_name");
\$page->assign(\$data);
\$page->output();
?>

TEXT;

$code = ob_get_contents();
ob_end_clean();

$fname = basename($Template_name);
$fname = substr($fname,0,strrpos($fname,".")+1)."php";

$fp = fopen($fname,"w");
fwrite($fp,$code);
fclose($fp);

include "$fname";

?>




主站蜘蛛池模板: 日韩天天干| 青娱乐最新官网 | 青草视频免费观看在线观看 | 五月婷婷在线视频 | 深夜国产福利 | 日韩天天操 | 青青青国产免费手机视频在线观看 | 天天激情站 | 欧美性猛交ⅹxxx乱大交免费 | 亚洲丁香婷婷综合久久小说 | 欧美综合图区 | 欧美桃色视频 | 日韩中文字幕精品一区在线 | 青草香蕉精品视频在线观看 | 亚洲日本欧美在线 | 伊人精品在线 | 日本aⅴ在线不卡免费观看 日本aⅴ在线 | 色综合综合网 | 天堂av2017男人的天堂 | 亚洲福利秒拍一区二区 | 日本三级成人中文字幕乱码 | 在线观看亚洲专区 | 欧美做暖小视频xo免费 | 亚洲 中文 欧美 日韩 在线 | 无声在线完整版免费观看 | 自拍网视频| 天天插天天操天天射 | 中文字幕永久在线视频 | 一二三四在线观看日本 | 日本在线观看中文 | 欧美五月婷婷 | 微草影院 | 亚洲一区二区三区影院 | 欧美一二三 | 天天操夜夜草 | 伊人国产视频 | 日本欧洲亚洲一区在线观看 | 日韩怡红院 | 日韩不卡手机视频在线观看 | 青春草在线观看播放免费视频 | 日本一本久 |