侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

php  /  管理员 发布于 5年前   301

 

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

说到找工作,暑假的时候本打算去杭州找找的,因为那儿的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

 

<?phprequire('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生成指定位数(13位)的时间戳
    下一条:
    SAE上部署WeiPHP2.0
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客