实时搜索: js 模板引擎 哪个好

js 模板引擎 哪个好

416条评论 5476人喜欢 5690次阅读 273人点赞
我只想要一个简单的,自己写的模板引擎的代码!

Smarty这样浮渣的程序就算了! , 如题,单个foreach()能替换了。代码如下:

这个就是替换模板里标签的代码。问题来了,单个能替换了,但不知如何替换模板中有嵌套循环的标签,如以下标签:
<foreach item=$v from=$user>
<foreach item=$v2 from=$v>
........
</foreach>
</foreach>
因为这是正则表...

PHP 模板引擎的简单代码怎么弄!: //phpcms 的核心模板解析函数
/*

*/

function template_parse($str)
{

$str = preg_replace("/\{(\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\}/es", "addquote('<?php echo \\1;?>')",$str);
$str = preg_replace("/\{([A-Z_\x7f-\xff][A-Z0-9_\x7f-\xff]*)\}/s", "<?php echo \\1;?>",$str);
$str = preg_replace("/([\n\r]+)\t+/s","\\1",$str);
$str = preg_replace("/\<\!\-\-\{(.+?)\}\-\-\>/s", "{\\1}",$str);
$str = preg_replace("/\{template\s+(.+)\}/","\n<?php include template(\\1); ?>\n",$str);
$str = preg_replace("/\{include\s+(.+)\}/","\n<?php include \\1; ?>\n",$str);
$str = preg_replace("/\{php\s+(.+)\}/","\n<?php \\1?>\n",$str);
$str = preg_replace("/\{if\s+(.+?)\}/","<?php if(\\1) { ?>",$str);
$str = preg_replace("/\{else\}/","<?php } else { ?>",$str);
$str = preg_replace("/\{elseif\s+(.+?)\}/","<?php } elseif (\\1) { ?>",$str);
$str = preg_replace("/\{\/if\}/","<?php } ?>",$str);
$str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}/","<?php if(is_array(\\1)) foreach(\\1 AS \\2) { ?>",$str);
$str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}/","\n<?php if(is_array(\\1)) foreach(\\1 AS \\2 => \\3) { ?>",$str);
$str = preg_replace("/\{\/loop\}/","\n<?php } ?>\n",$str);
$str = preg_replace("/\{tag_([^}]+)\}/e", "get_tag('\\1')", $str);
$str = preg_replace("/\{\\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(([^{}]*)\))\}/","<?php echo \\1;?>",$str);
$str = preg_replace("/\{(\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/","<?php echo \\1;?>",$str);

}
function addquote($var)
{
return str_replace("\\\"", "\"", preg_replace("/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s", "['\\1']", $var));
}

php 写模板引擎时 写到替换标签时不知如何替换嵌套循环标签。: 不理解什么是“要从assign里面找”呢?一般来说$view->assign('user', $user)的话,模板这边应该是直接使用$user的,而不是$assign['user'],这样就不存在你所说的问题了啊。

php smarty模板引擎foreach循环显示不出来: 把 {foreach from $articlelist item=articlelist} 改成 {foreach from=$articlelist item="articleitem"}
把{$articlelist.article_title} 改成 {$articleitem.article_title}
改成这样的试试看,你这里 {foreach from $articlelist item=articlelist} 写法就有问题了
from 要等于 $articlelist from=$articlelist
item 值名不能与 输入多维数据名一样
最后 {foreach from=$articlelist item="articleitem"} 是 Smarty 2 的写法
Smarty 3 的写法是 {foreach $articlelist as $articleitem}

js中如何让模板引擎先加载完毕,再调用页面里被模板包裹的id?: 这种情况的话,,你在包裹了的html下面也包裹下js代码,,,

php smarty模板引擎 怎么使用中文变量: 建议使用英文变量名.
========
带着你的问题查了手册,没发现说支持中文变量.
中文变量可能不支持.
因为中文这种多字节字符做变量名,对smarty来说有不确定性.主要受编码的影响.
==============
当页面是gbk编码时,中文字符是2字节大小,
当页面是utf-8编码是,中文字符中3字节大小,
如果我是smarty模板的开发者,估计也头大.

常见的前端模板引擎有哪些?: 前端特别流行的库很多,完全是根据不同需求来的。

学习PHP模版引擎出现了问题:Failed opening required 'smarty_dir.php': smarty_dir.php文件没找到,跟你的PHP.ini没有关系,你看看这个文件在哪里,目录一定要写正确。

使用NVelocity模板引擎 页面怎么获取想要的数据: 您好:首先:在Castle Project上下载一个CastleProject包,我下载的是CastleProject-1.0-RC3.msi
安装后,在其下的bin目录中可找到NVelocity.dll(NET项目中将用到),并将其复制出来放到我的测试WEB/BIN目录下。
到castleproject上看了一下using it大致有四步: 先要引入以下名称空间: using Commons.Collections; using NVelocity; using NVelocity.App; using NVelocity.Context;
第一步:Creating a VelocityEngine也就是创建一个VelocityEngine的实例
VelocityEngine velocity = new VelocityEngine(); //也可以使用带参构造函数直接实例。 ExtendedProperties props = new ExtendedProperties(); velocity.Init(props);
第二步:Creating the Template加载模板文件
这时通过的是Template类,并使用VelocityEngine的GetTemplate方法加载模板 Template template = velocity.GetTemplate(@"path/to/myfirsttemplate.vm");
第三步:Merging the template整合模板
VelocityContext context = new VelocityContext(); context.Put("from", "somewhere"); context.Put("to", "someone");
context.Put("subject", "Welcome to NVelocity"); context.Put("customer", new Customer("John Doe") );
第四步:创建一个IO流来输出模板内容。推荐使用StringWriter(因为template中以string形式存放)
StringWriter writer = new StringWriter(); template.Merge(context, writer); Response.Write(writer.ToString());

  • 15 液化气用多久

    怎样在cf玩家搜索中搜到爱拍红人AOTY: 在页面输入ATOY就好了啊。http://www.aipai.com/space.php?bid=2532766 我帮你找好了。自己看吧。 ...

    203条评论 3055人喜欢 5522次阅读 355人点赞
  • 2017法国现任总统是谁

    英雄联盟我方防御塔被拆语音这么下载: 下面贴出一些英雄联盟各种音效、英雄语音的文件位置方便大家取用中文英雄语音———我的电脑:X:\英雄联盟\Air\assets\sounds\zh_CN\champions英文英雄语音———我的电脑:X:\英雄联盟\A...

    696条评论 4849人喜欢 6120次阅读 567人点赞
  • office安装哪几个

    末尾发ao的成语有那些??: 1、【成语】: 惟妙惟肖【拼音】: wéi miào wéi xiào【解释】: 肖:相似。描写或模仿的非常逼真。【出处】: 清·蒲松龄《聊斋志异·各本序跋题辞〈读聊斋杂说〉》:“形容维妙惟肖,仿佛《水经注》造语。”...

    629条评论 1257人喜欢 4600次阅读 724人点赞
  • 100以内的质数有哪些

    哪部动漫电影居然请来了"英雄联盟"的解说来配音?: 我觉得这一段时间的动画电影真是扎堆上映呢,从"高达NT","fate"的第二部,以及即将上映的"游戏人生·零",都是非常好看的动画电影。而在下个月的8月16号,则同样有一部极为吸引人眼球的动画电影上映,那就是《全职高...

    874条评论 2443人喜欢 3390次阅读 250人点赞
  • nev是谁

    有一个老片子洪金宝主演,恶霸看上了一美女要强上结果捂死了,正好洪金宝来了就嫁祸他。请问叫什么名字。: 该影片是《林世荣》,洪金宝在影片中饰演林世荣。《林世荣》是1979年出品,由洪金宝、袁和平执导,洪金宝、关德兴、樊梅生、元彪、陈会毅、李海生、冯克安、陈琪琪、钟发等人主演的动作喜剧电影。讲述了黄飞鸿之徒林世荣以卖猪肉...

    641条评论 1959人喜欢 2314次阅读 452人点赞