介绍
这篇文章主要介绍了如何自定义分钟版smarty模板引擎MinSmarty.class。php文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
具体如下:
<强>一、smarty的优点强>
smarty是一个使用php写出来的模板引擎,是目前业界最著名的php模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起php代码逻辑分离。简单的讲,目的就是要使php程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
<强>二,写一个简单的smarty模版类强>
具体代码如下:
& lt; php ? ,class MinSmarty { ,//模版文件的路径=,var template_dir 美元;“。/模板/?; ,//模版文件被替换后的文件,命名格式为com_对应的tpl.php=,var complie_dir 美元;“。/templates_c/?; ,//存放变量的值 ,var tpl_vars 美元;=,数组(); ,//这里使用两个方法实现assign 和显示 ,function 分配(tpl_var美元$ var=NULL) { 如果才能($ tpl_var !=NULL) { 这个美元才能→tpl_vars [tpl_var美元]=$ var; ,,} ,} ,//这里编写显示方法的实现 ,function 显示器(tpl_file美元){//,才能读取这个模版文件→替换可以运行php的文件(编译后文件) tpl_file_path=这美元才能→template_dir tpl_file美元;,,//,模版文件的路径 complie_file_path=这美元才能→complie_dir !”com_"。美元tpl_file !”.php",,,//编译后的文件路径//才能,判断文件是否存在 如果才能(! file_exists (tpl_file_path美元)){ return 才能;假; ,,}//,才能不让每次执行都生成编译文件 如果才能(! file_exists (complie_file_path美元),| |,filemtime (tpl_file_path美元)祝辞filemtime (complie_file_path美元)){ 美元才能fp1_file_con=file_get_contents (tpl_file_path美元);,//,获取模版文件的全部内容//才能,这里进行正则替换把,,模版文件中的代码,{$ title},替换成,& lt; ? php echo $ this→tpl_vars[& # 39;标题# 39;];?,在 模式=美元才能阵列( ,,,,& # 39;/\ {\ s * \ $ ([a-zA-Z_] [a-zA-Z0-9_] *) \ s * \}/我# 39; ,,); 取代美元才能=阵列( ,,,,& # 39;& lt; ? php echo $ this→tpl_vars(“${1}“]; ?祝辞& # 39; ,,); 美元才能new_str=preg_replace(模式,取代美元,美元fp1_file_con);,,//,替换后的内容 写入才能(complie_file_path, new_str美元);,,//,替换后的内容生成一个php文件 ,,}//,才能引入编译后的文件 include_once才能(“complie_file_path"美元); ,} ,} 祝辞;
下面的代码是对该类的测试
介绍。php代码如下:
& lt; php ? include_once才能(“MySmarty.class.php"); title=懊涝拍苷饫锸潜晏狻? 美元才能内容=罢饫锸悄谌?11111“; 美元才能MySmarty=new MySmarty (); MySmarty→美元才能分配(“title",标题美元); MySmarty→美元才能分配(“content", $内容); MySmarty→美元才能显示(“intro.tpl"); 祝辞;
模版如下:
介绍。tpl:
& lt; ! DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0,过渡//EN",“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"比; & lt; html  xmlns=癶ttp://www.w3.org/1999/xhtml"比; & lt; head> & lt; meta  http-equiv=癈ontent-Type",内容=皌ext/html;, charset=utf-8",/比; & lt; title> {$ title} & lt;/title> & lt;/head> & lt; body> {$内容} & lt;/body> & lt;/html>
感谢你能够认真阅读完这篇文章,希望小编分享的“如何自定义分钟版smarty模板引擎MinSmarty.class.php文件”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!