资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

PHP模板引擎的原理是什么

本篇内容主要讲解“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中,这个过程就是所谓的编译。

通常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>
            当前链接:<a href="http://cdkjz.cn/article/ihsche.html">http://cdkjz.cn/article/ihsche.html</a>
        </div>
        <div class="g-return-wrapper clearfix">
            <a href="http://www.cdkjz.cn/" class="home">返回首页</a>
            <a href="http://www.cdkjz.cn/news/" class="column">了解更多建站资讯</a>
        </div>
    </div>
</div>
<div class="full-related-news">
    <h3 class="related-title">相关资讯</h3>
    <div class="related-news weblg">
        <ul class="clearfix">
            <li>
                    <a href="/article/jjpoed.html">
                        <h2 class="title">并行导致的进程数过大无法连接数据库</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpoop.html">
                        <h2 class="title">如何基于TensorFlow实现CNN-RNN中文文本分类</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpope.html">
                        <h2 class="title">vueJs实现DOM加载完之后自动下拉到底部的实例代码</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpoho.html">
                        <h2 class="title">centos7.3中hostnamectl命令的怎样是什么</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpoei.html">
                        <h2 class="title">Android中EventBus的示例分析</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpopj.html">
                        <h2 class="title">使用CSS的技巧有哪些</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpohe.html">
                        <h2 class="title">什么样的香港服务器比较好</h2>
                    </a>
                </li><li>
                    <a href="/article/jjpohc.html">
                        <h2 class="title">JavaScript如何清除脚本内容</h2>
                    </a>
                </li>        </ul>
    </div>
</div>
<div class="full-icontact-cover m-ft-contact">
    <div class="weblg">
        <div class="clearfix content">
            <div class="motto">
                多年建站经验
            </div>
            <div class="info">
                <h3>多一份参考,总有益处</h3>
                <h2> 联系快上网,免费获得专属《策划方案》及报价</h2>
                <div class="msg">
                    <p>咨询相关问题或预约面谈,可以通过以下方式与我们联系</p>
                    <h4>业务热线:<a href="tel:400-028-6601" rel="nofollow">400-028-6601</a> / 大客户专线   成都:<a
                            href="tel:+13518219792" rel="nofollow">13518219792</a>
                          座机:<a href="tel:02886922220" rel="nofollow">028-86922220</a>
                    </h4>
                </div>
            </div>
        </div>
        <div class="btns clearfix">
            <a href="https://wpa.qq.com/msgrd?v=3&uin=631063699&site=qq&menu=yes" target="_blank" rel="nofollow"
               class="oline">在线咨询</a>
            <a href="javascript:;" class="edit" rel="nofollow">提交需求</a>
        </div>
    </div>
</div>
<div class="footer-content">
    <div class="weblg clearfix">
        <div class="friend-links">
            <h6 class="clearfix">
                <span class="tilte">友情链接</span>
                <a class="exchagne" href="http://wpa.qq.com/msgrd?v=3&uin=631063699&site=qq&menu=yes">交换友情链接</a>
            </h6>
            <div class="link-list clearfix">
                <div class="link-slider">
                    <a href="http://m.cdxwcx.com/weihu.html" title="成都网站维护公司" target="_blank">成都网站维护公司</a><a href="http://www.cdxwcx.cn/tuoguan/hk.html" title="香港机房服务器托管" target="_blank">香港机房服务器托管</a><a href="https://www.cdcxhl.com/service/400.html" title="400电话申请" target="_blank">400电话申请</a><a href="http://www.cdxwcx.cn/tuoguan/zuyong.html" title="成都服务器租用" target="_blank">成都服务器租用</a><a href="https://www.cdcxhl.cn/
" title="香港虚拟主机" target="_blank">香港虚拟主机</a><a href="http://www.kswcd.com/" title="定制网站" target="_blank">定制网站</a><a href="https://www.cdxwcx.com/wangzhan/dingzhi.html" title="网站定制" target="_blank">网站定制</a><a href="https://www.cdxwcx.com/wangzhan/dingzhi.html" title="成都定制网站" target="_blank">成都定制网站</a><a href="http://www.4006tel.net/vision/" title="UI设计" target="_blank">UI设计</a><a href="http://www.cxhlcq.com/mobile/" title="重庆手机网站建设" target="_blank">重庆手机网站建设</a>                </div>
            </div>
        </div>
    </div>
    <div class="full-foot-bottom">
        <div class="weblg clearfix">
            <p>成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询<a href="tel:400-028-6601">400-028-6601</a></p>
            <p>
                成都快上网科技有限公司-四川网站建设设计公司 | <a href="http://www.miitbeian.gov.cn/" target="_blank" rel="nofollow">蜀ICP备19037934号</a> Copyright 2020,ALL Rights Reserved cdkjz.cn | <a href="http://www.cdkjz.cn/" target="_blank">成都网站建设</a> | © Copyright 2020版权所有.</p>
            <p>专家团队为您提供<a href="http://www.cdkjz.cn/" target="_blank">成都网站建设</a>,<a href="http://www.cdkjz.cn/" target="_blank">成都网站设计</a>,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | <a href="###">网站建设地图</a></p>
        </div>
    </div>

</div>
<script type="text/javascript" src="../js/idangerous.swiper.min.js"></script>
<script type="text/javascript" src="../js/wow.min.js"></script>
<script type="text/javascript" src="../js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="../js/jquery.placeholder.min.js"></script>
<script type="text/javascript" src="../js/layout.js"></script>
</body>
</html>
<script>
    $(".singlepage 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>