一套程序好不好,关键的是看它有不有灵魂。如果是一套没有自己核心和运作流程的程序,那么在开发和使用的时候都会遇到诸多问题,需要单独写很多函数去弥补程序的不足,那样的话程序员就要忙着去修补程序的边边角角,没法进行高效率的程序开发。
在很早很早以前,我们可以看到,很多程序都是asp和html混合在一起的,一个页面一个asp,程序、数据、html结构、css样式、前端脚本等融合在一起,虽然当时觉得挺方便,但是做的网站多了,就会觉得效率非常低下。网站程序开发经过多年的变革,成功的经验被一点点积累,模板引擎就是其中的一种。相信大家都懂模板引擎,要说其核心,就是实现了界面、数据和程序的分离。从此以后,用一套程序就可以搞定很多种不同的网站,比如咱们经常听到的CMS,用CMS仿站,一般的网站都可以轻松搞定,模板引擎有着不可磨灭的功劳。模板引擎诞生后,我们可以将核心的数据操作函数写在公共函数库里面,不同模板使用到的不同功能,就通过模板中的程序代码来单独完成。
锐时代的建站系统就单独开发了一套适应的模板引擎,可以方便的完成网站建设,不仅如此,还支持可视化管理,这都通过模板引擎来实现。下面用一些简单的例子来讲解。

最基础的一个,是要支持html模板里面的asp代码的运行,通常情况下,asp代码以<%和%>为开始和结束标志,但是如果写在html模板里面的话,服务器就没法直接运行,需要我们程序将模板中的asp代码片段提取出来,然后交由服务器运行。这需要用正则表达式来实现(PS:如果您对正则表达式不熟悉的话,那是没法进行模板引擎核心程序的开发的。)将<%和%>之间的内容提取出来的正则规则是(<\%( |.)*?\%>),将提取出来的asp代码用execute运行,将运行结果与asp代码内容进行一次替换,就可以输出模板的内容了。
这只是最基础的一个操作,除此外,我们可以直接在模板引擎里面调用数据操作类的函数,比如在锐时代建站系统里面,就可以直接使用data类的getonevalue函数直接从数据库获取某一个值,非常方便。这样的函数也可以写在不同的模板里面。不同模板,对时间的显示方式可能会不一样,比如有些会显示为“2014/7/16”,有的希望显示为"2014-7-16",有的希望显示为"[07-16]"等等,为了适应不同模板的风格,模板引擎就可以开发单独的函数来为不同的模板进行数据处理,这就是咱们所说的程序与数据分离,核心程序和常用程序可以写在系统库里面,个性化的函数可以根据不同模板的需要,写在不同的模板里面。
在这个基础上,我们还可以开发更多的函数与规则,比如将模板中的代码根据一定规则进行编写,程序按照一定规则进行匹配并适应数据,再进行相应的处理,那样的话就可以实现自己的独特代码了,比如我们可以将asp中的for循环用模板引擎进行改写。
在开发模板引擎的时候,一定要注意数据和程序安全,防止通过模板引擎对网站数据库、核心程序造成冲突和威胁,在这里就不一一叙述了。







