本篇内容主要讲解“PHP模板引擎的原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP模板引擎的原理是什么”吧!
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的南开网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
开发一个web项目,通常分为两部分,一部分是GUI,即界面、美工,使用HTML,CSS,JS编写,另一部分则是业务逻辑,即程序、功能,使用PHP编写。而模板引擎则是联系这两部分的“桥梁”,可理解成一个PHP类,里面定义了许多方法,实现了将PHP的原始输出加载上界面样式后再输出。
<?php echo $title; ?>
这样的话美工与逻辑没有分离,简单的说就是PHP程序员不仅要写程序还要精通美工,这往往十分困难,因此需要将这两部分工作分开。
在此通过自己创建一个简单的模板引擎为例子,更好的体会模板引擎的原理。
之前说了开发一个web项目分成GUI与业务逻辑两部分,因此我们创建两个文件夹,一个命名为“templates”,里边存放模板,新建一个tpl.html文件,另一个命名为“PHP”,里边存放业务逻辑,新建一个index.php文件。
tpl.html文件代码通常是这样:
<{$title}> <{ $content;}>
可以看出来,和之前的代码相比,tpl.html中只有html代码,没有php代码,但是增加了新的标签,这类标签是自己定义的,里面的内容只有经过模板引擎编译后才能被识别,编译后的文件存放在“templates_c”文件夹下。这个文件主要是界面设计用的,将大量使用到CSS,JS等技术。
这时候tpl.html和index.php仍旧是分离的,互不干扰,因此需要一个“桥梁”连接,即模板引擎,其实就是一个PHP类,故在此可以创建一个mytpl.class.php的PHP文件。
mytpl.class.php文件通常定义一个类MyTpl,类中需定义一个数组tpl_var[]用于存放tpl.html中自定义内容标签的参数,此外还需定义一些方法,这些方法最主要的目的是将tpl.hml中无法识别的的内容标签转换成PHP语句,然后再写到一个“templates_c”文件夹下的tpl_c.html中,这个过程就是所谓的编译。
<?php echo $this->tpl_var[“title”]; ?></head> <body><?php echo $this->tpl_var[“content”]; ?}></body> </html></pre><p>可以看出上面的代码是可以被识别的,因为自定义的内容标签已经被替换成PHP语句了,但是title和content的值是多少我们还不得而知,这时候之前创建的index.php要上场了.</p><h4>index.php通常它代码是这样的:</h4><pre>include “tpl.class.php文件”;//加载模板引擎 $tpl = new MyTpl();//实例化一个模板类 $title = “标题”; $content = “内容”; $tpl->assign(“title”,$title);//调用模板类中的方法,分配变量 $tpl->assign(“content”,$content); $tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容</pre><p>上面的代码只是一些简单的描述代码,其中的变量的值可以是直接定义的也可以是从数据库中获取的,此外该文件还可以编写一些复杂的PHP程序,这也就是之前说的业务逻辑。</p><p>这样GUI和业务逻辑的工作就分离了,美工设计人员只需要编写模板文件就可以改变web的界面,而PHP程序员则可以专心编写自己的程序。</p><p>公司内部一般都有自己的模板引擎,而通常模板引擎自己写的话完全没有必要,因为市面上已经有一些很成熟的模板引擎了,比如Smarty,我们只需要懂得如何使用它就好了。</p><p>到此,相信大家对“PHP模板引擎的原理是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!</p> <br> 名称栏目:PHP模板引擎的原理是什么 <br> 标题URL:<a href="http://hxwzsj.com/article/ihsche.html">http://hxwzsj.com/article/ihsche.html</a> </div> </div> <div class="other"> <h3>其他资讯</h3> <ul> <li> <a href="/article/hjgsch.html">历代系统windows的简单介绍</a> </li><li> <a href="/article/hjgsdj.html">mysql怎么删除文件夹 如何删除mysql中的数据库</a> </li><li> <a href="/article/hjgsss.html">c语言判断类型的函数吗 c语言判断字符类型</a> </li><li> <a href="/article/hjgssc.html">关于c语言字符串拆分函数的信息</a> </li><li> <a href="/article/hjgsij.html">c语言中函数包括哪些要素 c语言函数的三要素是指</a> </li> </ul> </div> </div> <div class="footer2"> Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14 <br />友情链接: <a href="http://www.cdweb.net/" target="_blank">自适应网站建设 </a><a href="http://seo.cdkjz.cn/wangzhan/" target="_blank">网站制作公司 </a><a href="http://www.cxjianzhan.cn/" target="_blank">网站建设开发 </a><a href="http://chengdu.kswjz.com/" target="_blank">成都网站制作 </a><a href="http://www.cxhljz.com/" target="_blank">成都做网站建设公司 </a><a href="http://www.cdxwcx.cn/bj/" target="_blank">网站制作报价 </a><a href="https://www.cdcxhl.com/" target="_blank">网站制作 </a><a href="http://chengdu.cdcxhl.cn/" target="_blank">成都网站建设 </a><a href="http://www.kswcd.cn/" target="_blank">专业网站设计 </a><a href="https://www.cdcxhl.com/pinpai.html" target="_blank">成都品牌网站建设 </a><a href="http://m.xwcx.net/wangzhan/" target="_blank">定制级高端网站建设 </a><a href="http://www.cxjianzhan.com/" target="_blank">网站制作公司 </a><a href="http://www.33260.cn/" target="_blank">成都定制网站建设 </a><a href="https://www.cdcxhl.com/city/chengdu.html" target="_blank">四川成都网站建设 </a><a href="https://www.cdcxhl.com/waimao.html" target="_blank">外贸网站建设 </a><a href="http://www.cxhlcq.com/mobile/" target="_blank">重庆手机网站建设 </a><a href="http://chengdu.cdxwcx.cn/wangzhan/" target="_blank">手机网站制作 </a><a href="https://www.cdcxhl.com/qiye.html" target="_blank">企业网站建设 </a><a href="http://chengdu.kswsj.cn/" target="_blank">高端网站设计推广 </a><a href="http://www.cdkjz.cn/fangan/response/" target="_blank">响应式网站设计方案 </a><a href="https://www.cdxwcx.com/" target="_blank">成都网站建设 </a><a href="http://m.cdcxhl.com/" target="_blank">成都网站制作 </a></div> </body> </html> <script src="/Public/Home/js/wow.min.js"></script> <script> if (!(/msie [6|7|8|9]/i.test(navigator.userAgent))) { new WOW().init(); }; </script> <div class="sidebar"> <ul> <li><a href="http://wpa.qq.com/msgrd?v=3&uin=244261566&site=hxwzsj.com&menu=yes" target="_blank"><img src="/Public/Home/images/right_qq.png" /></a></li> <li><a href="http://wpa.qq.com/msgrd?v=3&uin=1683211881&site=hxwzsj.com&menu=yes" target="_blank"><img src="/Public/Home/images/qq.png" /></a></li> <li class="tel"><a href="tel:028-86922220"><img src="/Public/Home/images/right_tel.png" /></a></li> <div class="wx"> <span class="weixin"><img src="/Public/Home/images/weixin.jpg"><br> 微信扫一扫在线咨询</span> </div> <li><a class="fx" href="#hero"><img src="/Public/Home/images/right_up.png" /></a></li> </ul> </div> <script type="text/javascript"> $(function () { $('.sidebar .fx').click(function () { $('html,body').animate({ scrollTop: '0px' }, 800); }); }); </script> <script type="text/javascript"> $(document).ready(function () { $("#fancybox-manual-b").click(function () { $.fancybox.open({ href: 'map.html', type: 'iframe', padding: 5 }); }) }); </script> <script> $(".con img").each(function(){ var src = $(this).attr("src"); //获取图片地址 var str=new RegExp("http"); var result=str.test(src); if(result==false){ var url = "https://www.cdcxhl.com"+src; //绝对路径 $(this).attr("src",url); } }); window.onload=function(){ document.oncontextmenu=function(){ return false; } } </script>