设为首页 收藏本站
查看: 786|回复: 0

[经验分享] php模板引擎Smarty学习笔记(全)

[复制链接]

尚未签到

发表于 2017-4-2 07:16:00 | 显示全部楼层 |阅读模式
好久没写博客了。最近忙着毕业的事,正在准备着一月份的答辩,系统已经做得差不多了,毕业论文初稿也写得差不多了,接下来估计就是论文修修补补了。本来想要去找工作的,但是学校不准,说是必须要留在学校里搞答辩的事。另外,老师那儿的一些项目还要收尾。就只能再待一个月了。
说到找工作,暑假的时候本打算去杭州找找的,因为那儿的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模板引擎的基本使用,基本上看了代码之后就知道怎么用了。
 
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-358861-1-1.html 上篇帖子: PHP分布式内存共享(Memcache) 下篇帖子: php学习笔记(七)对象操作相关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表