javascript与php模板引擎实现原理

一、简单替换:

  1. javascript:
    a. 代码:

    var data = {
        ‘name‘:‘lee‘,
        ‘place‘:‘wuhan‘
    }
    var str = "Hello {{name}}, Welcome to {{place}}!";
    var res = str.replace(
            /{{([\s\S]+?)}}/g,
            function(param1,param2){
                var index = param2
                return data[index]
            }
        );
    console.log(res)

    b. 输出:

    Hello lee, Welcome to wuhan!
  2. php:
    a. 代码:
    <?php
    $data = array(
        ‘name‘=>‘lee‘,
        ‘place‘=>‘wuhan‘
    );
    $str = "Hello {{name}}, Welcome to {{place}}!";
    $res = preg_replace_callback(
            "/{{([\s\S]+?)}}/",
            function($param) use($data){
                $index = $param[1];
                return $data[$index];
            },
            $str
        );
    echo $res;

    b. 输出:

    Hello lee, Welcome to wuhan!

    二、复杂替换:

  3. javascript:
    a. 代码:
    var data = {
    ‘name‘:‘lee‘,
    ‘place‘:‘wuhan‘
    }
    var str = "Hello {{data.name}}, Welcome to {{data.place}}!";
    var res = str.replace(
        /{{([\s\S]+?)}}/g,
        function(param1,param2){
            var ret = eval(param2)
            return ret
        }
    );
    console.log(res)

    b. 输出:

    Hello lee, Welcome to wuhan!
  4. php:
    a. 代码:
    <?php
    $data = array(
        ‘name‘=>‘lee‘,
        ‘place‘=>‘wuhan‘
    );
    $str = "Hello {{data.name}}, Welcome to {{data.place}}!";
    $res = preg_replace_callback(
            "/{{([\s\S]+?)}}/",
            function($param) use($data){
                $raw = $param[1];
                $arr = explode(‘.‘,$raw);
                $command = ‘return ‘.‘$‘.$arr[0].‘[\‘‘.$arr[1].‘\‘];‘;
                $ret = eval($command);
                return $ret;
            },
            $str
        );
    echo $res;

    b. 输出:

    Hello lee, Welcome to wuhan!

原文地址:http://blog.51cto.com/12173069/2104231

时间: 2024-10-14 00:03:54

javascript与php模板引擎实现原理的相关文章

PHP模板引擎的原理与实践

0x00 模板引擎的原理 模板引擎就是在模板文件中使用一系列提前约定好的标签代替原生PHP代码,通过访问一个PHP的入口文件,会有一个PHP编译文件根据约定替换模板内标签以及标签内变量,最终将模板文件编译成一个PHP文件,然后展示到浏览器中. 模板文件 前端开发者将前端代码中的所有数据替换成与服务端开发者约定好的标签及变量名. PHP入口文件 服务端开发者将前端代码中所需要的变量注入到前端. PHP编译文件 该文件中是模板引擎中的核心,在这里我们定义了 标签 语句 等,通过读取模板文件,使用正则

JavaScript Template JST模板引擎----Trimpath [转]

官方网址:http://trimpath.com/project/wiki/JavaScriptTemplates Trimpath JavaScript 是个轻量级的,基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎. 它有如下的特点:1.采用标准的JavaScript编写,支持跨浏览器 2.模板语法类似于:FreeMarker,Velocity,Smarty3.采用简易的语言来描述大段的字串以及Dom/DHTML操作 4.

(转)浅谈dedecms模板引擎工作原理及自定义标签

理解织梦模板引擎有什么意义?一方面可以更好地自定义标签.更多在于了解织梦系统,理解模板引擎是理解织梦工作原理的第一步.理解织梦会使我们写php代码时更顺手,同时能学习一些php代码的组织方式. 这似乎不是那么简单,如果你只想学习自定义标签,可以看一下“是否需要自定义标签”和““扩展标签””就够了. 一解析式引擎 如果你还没用过dedecms的标签,先用一下,也可以看一下“dedecms网页模板编写”.熟悉一下memberlist这个标签,下面会以这个标签为例. 织梦提供的模板分析引擎有解析式和编

JavaScript中template模板引擎

template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果. 1.特性 (1).性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍(性能测试)(2).支持运行时调试,可精确定位异常模板所在语句(演示) (3).对 NodeJS Express 友好支持(4).安全,默认对输出进行转义.在沙箱中运行编译后的代码(Node版本可以安全执行用户上传的模板)

php模板引擎的原理与简单实例

模板引擎其实就是将一个带有自定义标签的字符串,通过相应的规则解析,返回php可以解析的字符串,这其中正则的运用是必不可少的,所以要有一定的正则基础.总体思想,引入按规则写好的模板,传递给标签解析类(_HtmlTag)进行解析,再把解析好的字符串传递给php进行解析渲染输出首先定义了一个_HtmlTag类: class _HtmlTag{ protected $taglist = "if|elseif|else|loop|for|while|=|:=|:e|:html|:"; prote

JavaScript使用Nodejs模板引擎EJS

HTML文件里加入下面一段代码(下载地址:http://www.embeddedjs.com/): <script type="text/javascript" src="ejs_production.js"></script> Syntax // load a template file, then render it with data html = new EJS({url: '/template.ejs'}).render(data)

JavaScript模板引擎原理,几行代码的事儿

JavaScript模板引擎原理,几行代码的事儿 什么是模板引擎,说的简单点,就是一个字符串中有几个变量待定.比如: var tpl = 'Hei, my name is <%name%>, and I\'m <%age%> years old.'; 通过模板引擎函数把数据塞进去, var data = { "name": "Barret Lee", "age": "20" }; var result

高性能JavaScript模板引擎原理解析

随着 web 发展,前端应用变得越来越复杂,基于后端的 javascript(Node.js) 也开始崭露头角,此时 javascript 被寄予了更大的期望,与此同时 javascript MVC 思想也开始流行起来.javascript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注,近一年来在开源社区中更是百花齐放,在 Twitter.淘宝网.新浪微博.腾讯QQ空间.腾讯微博等大型网站中均能看到它们的身影. 本文将用最简单的示例代码描述现有的 javascript 模板引擎

JavaScript模板引擎原理与用法

这篇文章主要介绍了JavaScript模板引擎原理与用法,结合实例形式详细分析了javascript模版引擎相关概念.原理.定义及使用方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下 一.前言 什么是模板引擎,说的简单点,就是一个字符串中有几个变量待定.比如: var tpl = 'Hei, my name is <%name%>, and I\'m <%age%> years old.'; 通过模板引擎函数把数据塞进去, var data = { &q