在bo-blog的模板文件中,有这样的代码: <meta name="author" content="{blogname}" />
<meta name="description" content="{blogdesc}" />
<meta name="keywords" content="{blogkeywords}" />
类似这种{blogname}{blogdesc}{blogkeywords}用大括号括起来的,最终可以可以显示成blog的名称,描述,关键字,是php中的用法么,谁能帮我解释下
<meta name="description" content="{blogdesc}" />
<meta name="keywords" content="{blogkeywords}" />
类似这种{blogname}{blogdesc}{blogkeywords}用大括号括起来的,最终可以可以显示成blog的名称,描述,关键字,是php中的用法么,谁能帮我解释下
$smarty->right_delimiter = '}-->';一般写的是<--{}-->这个你还可以改 成你想要的
不同的模版,可能需要的标记是不同的,你自己实现一套模版机制,想用什么标记都可以的
到时候可以用类似str_replace('{blogname}', $realblogname, $template_content);的代码替换
如果带缓存的模板则是类似<meta name="author" content="<?php echo $blogname; ?>" />
1.被替换成相应的变量
2.被处理成逻辑块的指令(比如条件分支,循环结构等)
其实最终的代码最后还是会重写成php。
模板引擎的引入是为了做到“关注点分离”,让显示归显示,不让业务层逻辑污染表示层。
详细的看smarty的各种资料,最好是看手册,手册永远是最好的资源。
{blogname}这样的变量是在模板文件里的。
php读取这个模板文件。然后用正则分析,像上面这样的代码可能会被解析成:
<?php echo $blogname ?>
假设a.php.
内容是这样的:
<?php
$a="name";
include template('a');
?>复制代码解释:第一句定义变量,供模板显示,第二句调用模板a.htm。
a.htm的内容:
<body>
{a}
</body>这样,你访问a.php就会在页面中出现name字符。原理分析:考虑template函数的作用,其实最终a.php会被解析成这样:
<?php
$a="name";
?>
<body>
<?php echo $a ?>
</body>