这个问题涉及到正则,如果你没有学过正则表达式,那就先去看看吧。 我就不针对某个语言了,只将原理。 首先,访问页面的时候, 程序去找到相应的模版文件, 然后读取模版文件里的所有内容,用正则表达把相应的模版标签替换成程序语言,比如{template header} 通过 /\{template (\s+)\}/ 这样的正则替换成 include 'header.htm'; 这样的执行语言。 然后再执行。 为了效率,一般情况下会把转义后的文件重新存储到其他位置,那么下次再执行的时候就不需要替换,而直接调用缓存里的那个转义后的可执行文件了。 所有语言的原理都是差不多的。 这包括.net框架 和 java框架里的内置MVC,都是这样的原理