什么是HTML中的{VARIABLE}意味着什么,以及如何初始化它?

时间:2012-09-12 03:56:25

标签: php html

我最近在阅读某些代码。在他的代码中,我看到一个奇怪的html文本,如{VARIABLE}。那个语法是什么意思?以及如何创建它?感谢

2 个答案:

答案 0 :(得分:1)

在PHP中,有一些名为"Complex (curly) syntax"的东西(在页面中更深入地查找),您可以使用{}将变量的值注入字符串,而不是剪切和连接字符串。

可以找到类似的答案here


另一种情况是,HTML可以包含该文本用作模板时like this one in CodeIgniter

答案 1 :(得分:0)

您没有初始化它。这是他们模板引擎的一部分。

无论他们如何做到这一点,我们的想法是使用您想要的实际数据查找/替换“{VAR}”。

var songTemplate = "<li class=\"track\"><span class=\"num\">{{TRACKNUM}}.</span>" +
                   "<span class=\"title\">{{TITLE}}</span>" +
                   "<span class=\"duration\">{{DURATION}}</span></li>";


var songs = [ { tracknum : 1, title : "Speak to Me/Breathe", duration : "4:13" },
              { tracknum : 2, title : "On the Run", duration : "3:36" },
              { tracknum : 3, title : "Time", duration : "7:01" } ];


function makeTrack (song, template) {
    var track = "";
    track = template.replace("{{TRACKNUM}}", song.tracknum);
    track = template.replace("{{TITLE}}"), song.title);
    track = template.replace("{{DURATION}}", song.duration);
    return track;
}

function trackList (songs, template) {
    var list = "<ul class=\"tracklist\">";
    songs.forEach(function (song) {
        list += makeTrack(song, template);
    });
    list += "</ul>";
    return list;
}


var songlist = trackList(songs, songTemplate);
parentEl.innerHTML = songlist;

无论使用何种语言对其进行模板化,基本思想都是从一串HTML开始,提取您想要替换的内容,并输入您想要的数据。

我已经向你展示了一个丑陋,丑陋的模板(如果我只需要写一个变量名称数组就会更好,剩下的就是......或者如果它通过字符串查看的话......找到{{X}},然后通过一个对象查找正确的值来替换它找到的内容。 这也有安全漏洞,如果你不控制模板和数据(如果你允许在你网站的任何地方进行最终用户输入,那么你就没有控制权。)

但这应该足以说明模板如何做他们做的事情,以及为什么。