Php 在HTML中,{VARIABLE}是什么意思,以及如何初始化它?

Php 在HTML中,{VARIABLE}是什么意思,以及如何初始化它?,php,html,Php,Html,我最近在读别人的代码。在他的代码中,我看到一个奇怪的html文本,写得像{VARIABLE}。这个语法是什么意思?如何创建它?感谢PHP中的,这里有一个叫做(在页面的更深处查找)的东西,您可以使用{}将变量的值注入字符串,而不是剪切和连接字符串 可以找到类似的答案 另一种情况是,当HTML用作模板时,它可能包含该文本。您不需要初始化它。这是他们模板引擎的一部分 不管他们是如何做的,我们的想法是用您想要的实际数据查找/替换“{VAR}” var songTemplate = "<li cl

我最近在读别人的代码。在他的代码中,我看到一个奇怪的html文本,写得像
{VARIABLE}
。这个语法是什么意思?如何创建它?感谢PHP中的

,这里有一个叫做(在页面的更深处查找)的东西,您可以使用
{}
将变量的值注入字符串,而不是剪切和连接字符串

可以找到类似的答案



另一种情况是,当HTML用作模板时,它可能包含该文本。

您不需要初始化它。这是他们模板引擎的一部分

不管他们是如何做的,我们的想法是用您想要的实际数据查找/替换“{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;
var songTemplate=“
  • {{TRACKNUM}}。”+ “{{TITLE}}”+ “{{DURATION}}
  • ”; var songs=[{tracknum:1,标题:“对我说话/呼吸”,持续时间:“4:13”}, {tracknum:2,标题:“奔跑”,持续时间:“3:36”}, {tracknum:3,标题:“时间”,持续时间:“7:01}]; 函数makeTrack(歌曲、模板){ var track=“”; track=template.replace(“{TRACKNUM}}”,song.TRACKNUM); track=template.replace(“{{TITLE}”)、song.TITLE); track=template.replace(“{DURATION}”,song.DURATION); 返回轨道; } 功能曲目列表(歌曲、模板){ var list=“
      ”; songs.forEach(函数(歌曲){ 列表+=制作曲目(歌曲、模板); }); 列表+=“
    ”; 退货清单; } var songlist=曲目列表(歌曲、歌曲模板); parentEl.innerHTML=歌曲列表;
    基本思想是,不管使用哪种语言对其进行模板化,都是从一个HTML字符串开始,取出您知道要替换的内容,然后放入所需的数据

    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;
    
    我已经向您展示了一个丑陋、丑陋的模板(如果我只需要编写一个变量名数组,它就可以完成其余的工作……或者如果它通过字符串查找
    {X}
    ,然后通过对象查找正确的值来替换它所找到的值,那就更好了)。 如果您不同时控制模板和数据(如果您允许最终用户在站点的任何位置输入,那么您就没有控制权),这也存在安全漏洞


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

    也许正在使用模板引擎?模板,猜猜我为什么会被否决?@rahmat提供的代码片段可能阻止了我猜的一些否决票……非常正确(因此链接为a+1)。但是,它仍然必须是
    {$variable}
    或派生,并且只适用于字符串(而不是“非PHP”部分)。@pst忽略了这个细节。这使得这个案例更像是一个引擎的模板。