smarty模板内容捕捉与变量修饰器

大家在上网的时候,我们经常会看到一个广告内容,会在一个页面的多个地方同时显示对不对

比如这个就是广告内容,无色无味无毒散

我们不可能在需要用到的地方,就把这个代码复制一下,然后放到这个地方吧,这样不符合软件工程的要求对不对。这个时候我们就要用到捕捉,一旦捕捉到了,后面我们直接来调用就可以了。关键字就是{capture name=”自定义名字”}广告内容{/capture}

上面中间就是我们捕捉到的内容,

然后我们可以通过smarty的保留变量来调用,形式如下

{$smarty.capture.name(也就是自己定义的名字)}然后我们想放到页面的什么地方都可以放。直接复用这条代码就可以了。注意第一次被捕捉到的内容不会显示出来。

而且一个页面可以不止有一个捕捉。可以捕捉多个内容。

而且,我们还可以在HTML页面使用assignappend传递的变量来使用。也就是说,我们可以调用这段捕捉的时候,不用像上面一样,写的那么长。面看看具体的代码:

{capture name="advert1"}

无色无味五毒水

{/capture}

{capture name="advert" assign="ad"}

欢迎使用addidas

{/capture}


{$smarty.capture.advert1}


{$smarty.capture.advert1}


{$ad}


{$ad}

下面是展示情况

smarty模板内容捕捉与变量修饰器_第1张图片

>>变量调节器

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:这个是为变量设置默认值,当变量unsetempty空字符串的时候,默认值将显示,必须有一个参数

{$my_title|default:’no’}

replace:对变量进行简单的搜索与替换,有两个参数,第一个是要搜索的字符串,第二个是要替换的字符串。

{$art|replace:’搜索字符串’:’替换字符串’}

truncate:截取字符串到指定长度,默认长度是80

注意多个参数用冒号分开

第一个参数是要截取的长度,第二个参数是截取后剩余的字符串要被显示的字符。当然了,它也会被算入长度的内部。

{$str|truncate:30:”---”}

好了,这个专题就到这吧。

 


你可能感兴趣的:(smarty模板技术)