大家在上网的时候,我们经常会看到一个广告内容,会在一个页面的多个地方同时显示对不对
我们不可能在需要用到的地方,就把这个代码复制一下,然后放到这个地方吧,这样不符合软件工程的要求对不对。这个时候我们就要用到捕捉,一旦捕捉到了,后面我们直接来调用就可以了。关键字就是{capture name=”自定义名字”}广告内容{/capture}
上面中间就是我们捕捉到的内容,
然后我们可以通过smarty的保留变量来调用,形式如下
{$smarty.capture.name(也就是自己定义的名字)}然后我们想放到页面的什么地方都可以放。直接复用这条代码就可以了。注意第一次被捕捉到的内容不会显示出来。
而且一个页面可以不止有一个捕捉。可以捕捉多个内容。
而且,我们还可以在HTML页面使用assign,append传递的变量来使用。也就是说,我们可以调用这段捕捉的时候,不用像上面一样,写的那么长。面看看具体的代码:
{capture name="advert1"}
{/capture}
{capture name="advert" assign="ad"}
{/capture}
{$smarty.capture.advert1}
{$smarty.capture.advert1}
{$ad}
{$ad}
下面是展示情况
>>变量调节器
在linux中也被叫做管道
简单点说,也就是前面的输出,依赖于后面的输入。
smarty有很多内置的变量修饰器,这里我们来说说常见的就好了。
{$name|lower}//传递过来的变量全部小写
{$name|upper}//传递过来的变量全部大写
{$name|count_characters}//计算字符长度,默认不会计算空格
//如果想计算空格,默认做如下的修饰
{$name|count_characters:true}
下面来说说常见的变量修饰器
capitalize:让变量内容的每一个单词首字母大写,如果想让带数字的单词首字母也大写capitalize:true
cat:连接多个变量,后面直接冒号跟连接的字符变量
count_paragraphs:计算变量内容有多少个段落
count_sentences:计算变量内容有多少个句子,注意这里分句是以英文标点来做判断的,每个句子以(. ? !)来结尾
count_words:计算变量内容有多少个单词
date_format:后面用冒号连接修饰符,
这里简单的你来说一下两个函数的用法
strtotime(“英文文本日期”):将任何英文文本日期时间描述解析为unix时间戳的形式
strtotime(“+1 day”)//返回多加一天的时间戳
strtotime(“next thursday”);//返回下一个星期四的时间戳
在来说一个函数:strftime(“格式符”,”时间戳”)
date_format常用修饰符:本地日期时间的一个格式化
%Y 四位数年份 %m月份 %d 日子
%a 星期几的简写 %w 星期几中的第几天(0代表星期天)
%H 时 %p am下午 pm 上午
%M 两位分钟数
%S 两位秒数
{$smart.now|date_format:”%A”}
{$smarty.now|date_format:”%Y-%m-%d %H:%M:%S”}
default:这个是为变量设置默认值,当变量unset或empty空字符串的时候,默认值将显示,必须有一个参数
{$my_title|default:’no’}
replace:对变量进行简单的搜索与替换,有两个参数,第一个是要搜索的字符串,第二个是要替换的字符串。
{$art|replace:’搜索字符串’:’替换字符串’}
truncate:截取字符串到指定长度,默认长度是80
注意多个参数用冒号分开
第一个参数是要截取的长度,第二个参数是截取后剩余的字符串要被显示的字符。当然了,它也会被算入长度的内部。
{$str|truncate:30:”---”}
好了,这个专题就到这吧。