当前位置:首页 > 开发 > 编程语言 > PHP > 正文

php模板引擎Smarty学习笔记(全)

发表于: 2012-11-14   作者:348725767   来源:转载   浏览次数:
摘要:   好久没写博客了。最近忙着毕业的事,正在准备着一月份的答辩,系统已经做得差不多了,毕业论文初稿也写得差不多了,接下来估计就是论文修修补补了。本来想要去找工作的,但是学校不准,说是必须要留在学校里搞答辩的事。另外,老师那儿的一些项目还要收尾。就只能再待一个月了。 说到找工作,暑假的时候本打算去杭州找找的,因为那儿的IT技术比较发达,起码比起我现在所在的城市要成熟很多。但是也不知道怎么

 

好久没写博客了。最近忙着毕业的事,正在准备着一月份的答辩,系统已经做得差不多了,毕业论文初稿也写得差不多了,接下来估计就是论文修修补补了。本来想要去找工作的,但是学校不准,说是必须要留在学校里搞答辩的事。另外,老师那儿的一些项目还要收尾。就只能再待一个月了。

说到找工作,暑假的时候本打算去杭州找找的,因为那儿的IT技术比较发达,起码比起我现在所在的城市要成熟很多。但是也不知道怎么回事,关键时刻胃疼了,疼的死去活来,差不多疼了一个月。估计是大一,大二的时候通宵次数太多了,对于身体太得瑟了吧。再加上家人的反对,就没去成。有时候,生活并不是事事顺心的;不顺心的时候,要适应变化,不要有悲观情绪,努力挖掘对自己有用的一面。

 

话说学校不让走,一时半会儿也没什么项目做,老师那儿的新项目也不想做了,如果做了估计收尾的时候又要延迟好多天去找工作。就想着学点什么,发现网上都说php做网页速度很快,决定就学php了。

这几天学下来感觉php语法也和java差不多,php有个模板引擎Smarty,感觉和struts里的freemarker模板很像,就下载了个Smarty手册来学习。

接下来是我这几天Smarty的学习笔记(个人能力有限,只能学这么多了-_-,基本用用就差不多了,什么插件,什么内置函数我都没有学,等以后不够用了再学吧):

 

1, 首先是下载Smarty的库文件,附件里有。

2, 解压Smarty库文件,然后记录Smarty-3.1.12\libs\Smarty.class.php的绝对路径。

3, 在项目工程下新建四个文件夹分别是cache(缓存文件)configs(配置文件)templates(模板文件)templates(模板编译出来的文件,一般不理)

 

然后就可以写代码了。附件里有个例子文件demo,里面写着一些基本的Smarty 函数例子。

现在黏贴如下:

 

 

首先贴出配置文件configs\foo.conf。
这里所说的配置文件并不是说的是工程必须的,只是一些变量的值,可以理解为define("xxx","xxx");就是一些常数。

title = "这是配置的标题<br/>"
content = "这是配置的内容<br/>"

 然后是templates\header.tpl

 

 

header<br/>

 

 

然后是templates\index.tpl

 

 

{include file="header.tpl"}


{config_load file="foo.conf"}		<!-- 加载配置文件(定义在configs文件夹下) -->
{$person->name}						<!-- 类变量 -->
{$person->log("哈哈哈这是类<br/>")}		<!-- 类方法 -->
{$name}								<!-- 变量 -->
{$arr["name"]}						<!-- 数组 -->

{#title#}							<!-- 配置文件里的值 -->

{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$age|upper}<br/>					<!-- 全大写  全小写(lower)-->
{$age|capitalize}<br/>				<!-- 首字母大写 -->
{$age|count_characters}<br/>		<!-- 字符串个数(不算空格) -->
{$age|count_characters:true}<br/>	<!-- 字符串个数(算空格) -->
{$cat|cat:"后加的字符"}<br/>			<!-- 在字符后面外加字符串 -->
{$no|default:"如果没值,则此字符串为默认"}<br/>			<!-- 默认赋值 -->
{$regex|regex_replace:"/[\r\t\n]/":"3"};<br/>	<!-- 正则替换字符串 -->
{$replace|replace:"123":"abc"}<br/>				<!-- 普通替换 -->
{$tru|truncate:11:"...":true}<br/>				<!-- 截取字符串 -->
{$multi|upper|cat:"123"}<br/>					<!-- 多个修饰 -->

{foreach from=$custid item=curr_id}				<!-- 遍历数组 -->
	{$curr_id}<br/>								<!-- ----- -->
{/foreach}										<!-- ----- -->

{foreach name=outer item=contact from=$contacts}	<!-- 遍历数组 -->
 {foreach key=key item=item from=$contact}			<!-- ----- -->
 {$key}: {$item}<br>								<!-- ----- -->
 {/foreach}											<!-- ----- -->
{/foreach}											<!-- ----- -->

{section name=customer loop=$custid}				<!-- section遍历数组 -->
	{if $smarty.section.customer.first}				<!-- 第一次遍历 -->
 			第一次遍历<br/>								<!-- ----- -->
	{/if}											<!-- ----- -->
	{if $smarty.section.customer.last}				<!-- 最后一次遍历 -->
 			最后一次遍历<br/>							<!-- ----- -->
	{/if}											<!-- ----- -->
	{$smarty.section.customer.index}:{$custid[customer]}<br>						
{sectionelse}										<!-- ----- -->
	there are no values in $custid.					<!-- ----- -->
{/section}											<!-- ----- -->
	
{if $name eq "这是变量<br/>"}							<!-- 判断语句 -->
	true<br/>										<!-- ----- -->
{else}												<!-- ----- -->
	false<br/>										<!-- ----- -->
{/if}												<!-- ----- -->

{ldelim}{rdelim}<br/>								<!-- 输出"{}" -->

{assign var="name" value="Bob"}						<!-- 自定义变量 -->
$name的自定义值为 {$name}.<br/>							<!-- ----- -->

{counter start=0 skip=2 print=false}				<!-- 自增数字 -->
{counter}<br/>										<!-- ----- -->
{counter}<br/>										<!-- ----- -->
{counter}<br/>										<!-- ----- -->
{counter}<br/>										<!-- ----- -->

{fetch file="http://localhost/Hello/demo/login.php"}<!-- 载入界面 -->

 然后是index.php

 

<?php

require('C:\Users\cng\Downloads\Smarty-stable\Smarty-3.1.12\libs\Smarty.class.php');

class Person
{
	public $name;
	function  __construct()
	{
		$name="cng";
	}
	
	function log($name)
	{
		print $name;
	}
}

$person=new Person();
$person->name="这是载入的类<br/>";

$smarty = new Smarty;

$smarty->assign("person",$person);
$smarty->assign("name","这是变量<br/>");
$smarty->assign("arr",array("name"=>"这是数组<br/>"));
$smarty->assign("age","cng");
$smarty->assign("cat","后面会加字符:");
$smarty->assign("regex","正则替换\n哈哈哈");
$smarty->assign("replace","普通替换123哈哈哈");
$smarty->assign("tru","我是正文哈哈哈哈哈");
$smarty->assign("multi","abc");
$smarty->assign("custid",array("chen","nai","gong"));
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => "3"),
		array("phone" => "555-4444", "fax" => "555-3333", "cell" => "760-1234")));



$smarty->display('index.tpl');


?>

 最后是login.php

<?php print "这是login界面";
?>

 这些就是Smarty模板引擎的基本使用,基本上看了代码之后就知道怎么用了。

 

 

 

 

php模板引擎Smarty学习笔记(全)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就
Smarty Smarty可以说是我接触PHP这门语言用到的第一个开源框架,当时在Smarty的帮助下,很好地完成
smarty笔记 1、smarty里面默认标签是{},在里面调用值。但是当解析的时候,会把javascript里面的花
第二十一章:Smarty模板技术 1:简介:Smarty是PHP中的一个模板引擎。使用PHP编写,它将一个应用程
一般情况下,最好不在模板中使用php函数,但有时没有其他更好的办法,但是smarty自带的变量调节函数
用php生成静态文件的方式很简单,就是用fopen()方法,fwrite(),fclose(),就好了,下面是php文档中
接触一个新东西,往往搭建最初始的环境最让人捉急。 在使用PHP模板Smarty过程中,如果不涉及自定义
还是一个很简单的项目 login 控制器用以控制登陆界面的显示 然后校验用户是否合法的控制器 加入了分
 前些时间在看创智博客韩顺平的Smarty模板引擎教程,再结合自己跟李炎恢第二季开发中CMS系统写的tp
写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码) 前些时间在看创智博客韩顺平的Sm
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号