mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-06 15:02:47 +08:00
改进模板引擎的Think变量解析
This commit is contained in:
@@ -959,78 +959,66 @@ class Template
|
|||||||
* @param array $vars 变量数组
|
* @param array $vars 变量数组
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function parseThinkVar(&$vars)
|
public function parseThinkVar($vars)
|
||||||
{
|
{
|
||||||
$vars[0] = strtoupper(trim($vars[0]));
|
$type = strtoupper(trim(array_shift($vars)));
|
||||||
$parseStr = '';
|
$param = implode('.', $vars);
|
||||||
if (count($vars) >= 2) {
|
if ($vars) {
|
||||||
$vars[1] = trim($vars[1]);
|
switch ($type) {
|
||||||
switch ($vars[0]) {
|
|
||||||
case 'SERVER':
|
case 'SERVER':
|
||||||
$parseStr = '$_SERVER[\'' . strtoupper($vars[1]) . '\']';
|
$parseStr = '\\think\\Request::instance()->server(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'GET':
|
case 'GET':
|
||||||
$parseStr = '$_GET[\'' . $vars[1] . '\']';
|
$parseStr = '\\think\\Request::instance()->get(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'POST':
|
case 'POST':
|
||||||
$parseStr = '$_POST[\'' . $vars[1] . '\']';
|
$parseStr = '\\think\\Request::instance()->post(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'COOKIE':
|
case 'COOKIE':
|
||||||
if (isset($vars[2])) {
|
$parseStr = '\\think\\Cookie::get(\'' . $param . '\')';
|
||||||
$parseStr = '\\think\\Cookie::get(\'' . $vars[1] . '.' . $vars[2] . '\')';
|
|
||||||
} else {
|
|
||||||
$parseStr = '\\think\\Cookie::get(\'' . $vars[1] . '\')';
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'SESSION':
|
case 'SESSION':
|
||||||
if (isset($vars[2])) {
|
$parseStr = '\\think\\Session::get(\'' . $param . '\')';
|
||||||
$parseStr = '\\think\\Session::get(\'' . $vars[1] . '.' . $vars[2] . '\')';
|
|
||||||
} else {
|
|
||||||
$parseStr = '\\think\\Session::get(\'' . $vars[1] . '\')';
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'ENV':
|
case 'ENV':
|
||||||
$parseStr = '$_ENV[\'' . strtoupper($vars[1]) . '\']';
|
$parseStr = '\\think\\Request::instance()->env(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'REQUEST':
|
case 'REQUEST':
|
||||||
$parseStr = '$_REQUEST[\'' . $vars[1] . '\']';
|
$parseStr = '\\think\\Request::instance()->request(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'CONST':
|
case 'CONST':
|
||||||
$parseStr = strtoupper($vars[1]);
|
$parseStr = strtoupper($param);
|
||||||
break;
|
break;
|
||||||
case 'LANG':
|
case 'LANG':
|
||||||
$parseStr = '\\think\\Lang::get(\'' . $vars[1] . '\')';
|
$parseStr = '\\think\\Lang::get(\'' . $param . '\')';
|
||||||
break;
|
break;
|
||||||
case 'CONFIG':
|
case 'CONFIG':
|
||||||
if (isset($vars[2])) {
|
$parseStr = '\\think\\Config::get(\'' . $param . '\')';
|
||||||
$vars[1] .= '.' . $vars[2];
|
|
||||||
}
|
|
||||||
$parseStr = '\\think\\Config::get(\'' . $vars[1] . '\')';
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$parseStr = '\'\'';
|
$parseStr = '\'\'';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (count($vars) == 1) {
|
switch ($type) {
|
||||||
switch ($vars[0]) {
|
case 'NOW':
|
||||||
case 'NOW':
|
$parseStr = "date('Y-m-d g:i a',time())";
|
||||||
$parseStr = "date('Y-m-d g:i a',time())";
|
break;
|
||||||
break;
|
case 'VERSION':
|
||||||
case 'VERSION':
|
$parseStr = 'THINK_VERSION';
|
||||||
$parseStr = 'THINK_VERSION';
|
break;
|
||||||
break;
|
case 'LDELIM':
|
||||||
case 'LDELIM':
|
$parseStr = '\'' . ltrim($this->config['tpl_begin'], '\\') . '\'';
|
||||||
$parseStr = '\'' . ltrim($this->config['tpl_begin'], '\\') . '\'';
|
break;
|
||||||
break;
|
case 'RDELIM':
|
||||||
case 'RDELIM':
|
$parseStr = '\'' . ltrim($this->config['tpl_end'], '\\') . '\'';
|
||||||
$parseStr = '\'' . ltrim($this->config['tpl_end'], '\\') . '\'';
|
break;
|
||||||
break;
|
default:
|
||||||
default:
|
if (defined($type)) {
|
||||||
if (defined($vars[0])) {
|
$parseStr = $type;
|
||||||
$parseStr = $vars[0];
|
} else {
|
||||||
}
|
$parseStr = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $parseStr;
|
return $parseStr;
|
||||||
|
|||||||
Reference in New Issue
Block a user