第一次在这里帖码,此份代码主要是PHP模板引擎技术研究,目前只有编译版本,希望各位多多提供意见和优化技巧 三个文件组成,不知道如何以文件形式,只能复制了,抱歉! index.php是一个配置文件,大伙看看就明白 index.html一些使用的例子 Templates.class.php基类 晚点发布下有缓存的完善版本,但希望没有在写缓存一些,有朋友或是高手指点下,这个模板引擎只要处理编译和缓存即可,其余考虑暂时不考虑,当然正则替换模式还要增加...
{if $pageCount > 1} {foreach item=i from=$pagerList} {if $pageNum eq $i} {$i} {else} {$i}{/if} {/foreach} {if $pageNum eq 1} 上一页{else} 上一页{/if} {if $pageNum eq $pageCount } 下一页{else} 下一页{/if} {if $pageNum eq 1} 首页{else} 首页{/if} {if $pageNum eq $pageCount} 最后一页{else} 最后一页{/if} {/if} (共{$pageCount}页)
本文介绍下,smarty模板引擎中,生成静态页的关键代码,有需要的朋友,参考下吧。在smarty中有一个获取模板页内容方法fetch(), 它的声明原形为:代码说明: 第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容。 生成静态页,就需要用到这个方法。fetch(’模板名称.tpl’, null, null, false); //将内容写入至一个静态文件 $fp=fopen(’news.html’,'w’); fwrite($fp,$content); fc...
{capture name="test"}{/capture}{$smarty.capture.test}说明:在{capture name="test"}和{/capture}之间的内容被存储到变量$test中,该变量由name属性指定.在模板中通过 $smarty.capture.test 访问该变量.如果没有指定name 属性,函数默认将使用"default" 作为参数,这一点类似Jquery中的clone方法。 二,config_load标签 config_load可以直接将文件中的内容读取出来,这样可以省掉assign这一步。 例子: test.csv 文件:pageTitle ...
endif;?>2.load标签 第二个是load标签,通过URL方式导入当前项目的公共JS或者CSS,例如:在href属性中可以使用特殊模板标签替换,例如:Load标签无需指定type属性,系统会自动根据后缀自动判断。 当然,load标签也支持条件判断调用:系统还提供了两个标签别名js和css 用法和load一致,例如:load标签也支持同时导入多个资源文件,甚至是不同类型的资源文件:
...呃~添加个缓存机制就完美了! 也不知道这样写比那些都是正则的模板引擎性能会不会更高点 ? [PHP]代码 $a = array( 'a','b','c');require 'template/demo.php';//引用模板?>[PHP]代码 模板文件: 模板测试 [PHP]代码 键值: //数组的迭代//smarty:{foreach item=na from=$a key=key} 键值:{$key} {/foreach}//对于php程序员那个更好理解呢?//smarty 解析模板还用到正则,PHP的正则效率不会高到哪里去吧...最简单, php,...
用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择, 但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是 相当"前卫"的。本文主要讨论SMARTY之于其他模板引擎的不同特点, 简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了 SMARTY和PHPLIB template的速度和易用性。 一、MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代 表了"模型"、"视图"和"控制",目的就是...
Smarty介绍 什么是模版引擎 不知道从什么时候开始,有人开始对 HTML 内嵌入 Server Script 觉得不太满意。然而不论是微软的 ASP 或是开放源码的 PHP,都是属于内嵌 Server Script 的网页伺服端语言。因此也就有人想到,如果能把程序应用逻辑 (或称商业应用逻辑) 与网页呈现 (Layout) 逻辑分离的话,是不是会比较好呢? 其实这个问题早就存在已久,从交互式网页开始风行时,不论是 ASP 或是 PHP 的使用者都是身...
引擎文件 代码如下:/** * 默默基于Discuz的模板引擎开发的OOP类模板引擎,可支持模板缓存并生成hash的md5值。由hash值来判断模板是否被修改,假如被修改则重新生成缓存文件,假如没有被修改,则直接调用缓存文件. * 版本:1.0.0.1 beta 测试版 */ class mmtp{ var $left_tags="{"; var $right_tags="}"; var $tp_suffix=".html"; var $cache_suffix=".tpl"; var $tp_dir="./"; ...
使用TinyButStrong模板引擎来做WEB开发TinyButStrong是应用于4.0.6及以上PHP版本的专业和易用的模板引擎!TinyButStrong 简称TBS,中译为"小强",它是一个PHP类.仅仅包含8个方法3个特性.文件大小100K左右,却能实现超大型模板引擎同样的功能.支持WYSIWYG编写html模板(Dreamweaver .FrontPage等)非常直观方便. 本文将介绍TBS的初步用法.TinyButStrong手册我们也在努力翻译中.已完成4/5.届时完成后,我会以连载方式发表在www.phpv.net里.敬...
Smarty Smarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。 Heyes Template Class 一个非常容易使用,但功能强大并且快速的模板引擎,它帮助你把页面布局和设计从代码中分离。 FastTemplate 一个简单的变量插值模板类,它分析你的模板,把变量的值从HTML代码中分离处理。 ShellPage 一个简单易用的类,可以让你的整个网站布局基于模板文件,修改模板就能改变整个站点。 STP Simple Template Parser 一个简单、...
主要功能说明 去掉了 Discuz 语言包的功能 移植 Discuz 模板中所有的功能 添加了自动更新缓存及生命周期功能 在模板中的使用方法跟Discuz的一样,所以就不做多余的说明了,使用前只需要做些简单的设置就可以了 如果需要使用discuz的语言包功能,只要去掉template.class.php第172行注释,并在template.func.php中加上discuz原来的languagevar函数就可以了 点击下载源文件 以下是代码范例: /** * 使用示例 * * @copyright Copyri...
简介:Blitz templates 是一个用C语言开发的快速的PHP模板引擎,它是作为一个PHP的扩展功能。它开始作为一个php_templates更换,但发展到更多的工作。它是基于可扩展的模板控制器(自定义视图类在PHP )和简单的逻辑 。基准测试表明,这是最快的一个PHP的模板引擎,使Web应用程序更接近于一个聪明的MVC 结构模型,最大从您的代码分离出HTML。 这是专为大高负荷的有许多复杂的演示文稿的逻辑的互联网项目。 下图是几个模板的性能测试...
使Web系统的开发与维护更加方便,从而有效的节省人力物力,受到了越来越多企业的青眯。 模板引擎是MVC模式建立过程的重要方法,开发者可以设计一套赋予含义的标签,通过技术解析处理有效的把数据逻辑处理从界面模板中提取出来,通过解读标签的含义把控制权提交给相应业务逻辑处理程序,从而获取到需要的数据,以模板设计的形式展现出来,使设计人员能把精力更多放在表现形式上。下面是我对模板引擎的认识与设计方法: 说的好听些叫...
基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制。 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了。但是因此而不去注意、不去学习,则容易书写错误并遇上问题。 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了。 除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容...