При написании панелей управления или административной части, достаточно много данных для отображения на веб-странице необходимо подгружать и обновлять динамически. Например, используя ajax или websocket. Обычно, загрузка таких данных происходит в формате JSON. После загрузки, может потребоваться объединить эти данные с заранее заданным текстом шаблона для дальнейшего отображения в интерфейсе.
Следующий код шаблонизатора (в несколько строк!) поможет Вам разместить полученные данные максимально просто и даже использовать short-tag от PHP, чтобы Вы могли легко переносить строку без изменений между PHP и Javascript, а также, при необходимости, обрабатывать Javascript как PHP-скрипт.
Код на Javascript:
/* * REX Tiny templater v0.0.2, (c)2017, xmoonlight */ var rex=/<\?=\$[\S_]+\[(?:[$'"]?)([^\]\s\'\"\$]+)(?:[$'"]?)\]\?>/gi; function getvars(re,s) { var r=[]; while( m = re.exec(s)) r.push(m[1]); return r; } function setvars(re,s,a) { return s.replace(re,function(r,b){return a[b]}); } //------------- str = "Когда <?=$var['m1']?> вышли из <?=$var['m2']?>, погода <?=$var['m3']?>."; vars={'m1':'мы','m2':'парка','m3':'стала портиться'}; console.log(getvars(rex,str)); //Array[3] => ["m1", "m2", "m3"] console.log(setvars(rex,str,vars)); //Когда мы вышли из парка, погода стала портиться.
Используя данный шаблонизатор, также, можно решить проблему мультиязычности интерфейса и множество других.