smarty变量调节器

写法:<{变量名|方法名[:参数]}>

原理:把变量名作为方法的第一个参数执行,输出函数的返回值到本页面

文件夹:plugins/modifier.方法名.php

应用举例:

<!--系统自带-->
<div><{$test|capitalize}></div>//首字母大写

<div><{$money|cat:"$"}></div>//连接字符串    输出hello$
<div><{"$"|cat:$money}></div>//输出$hello

<div><{$zifu|count_characters}></div>//字符计数,在这里汉字为一个字符,空格还是两个字符,小数点是一个字符
<div><{$duanluo|count_paragraphs}></div>//段落计数
<div><{$yuju|count_sentences}></div>//语句计数
<div><{$danci|count_words}></div>//单词计数

<div><{$riqi|date_format:"%D %T"}></div>//格式化日期时间
<div><{$riqi|date_format:"%Y-%m-%d %H:%M:%S"}></div>
备注:
%T - 当前时间,和 %H:%M:%S 一样 
%D - 和 %m/%d/%y 一样
%y - 没有世纪数的十进制年份(范围从 00 到 99) 
%Y - 包括世纪数的十进制年份  
%H - 24 小时制的十进制小时数(范围从 00 到 23) 
%I - 12 小时制的十进制小时数(范围从 00 到 12) 
%m - 十进制月份(范围从 01 到 12) 
%M - 十进制分钟数 
%S - 十进制秒数 
%j - 年份中的第几天,十进制数(范围从 001 到 366) 
%d - 月份中的第几天,十进制数字(范围从 01 到 31) 

<div><{$moren|default:"hello"}></div>//默认值
当变量未设置或为空字符串时,将由给定的默认值替代其输出。

<div><{$suojin|indent:10}></div>//字符缩进,显示在源代码中
<div><{$zhengze|regex_replace:"/d/":"qq"}></div>//正则代替
<div><{$zhengze|replace:"l":"8"}></div>//替换
<div><{$jiequ|truncate:8:"..."}></div>//截取,是指包含三个点在内的八个字符

<!--自定义-->
样式
<div><{$ceshi|yangshi:"blue":20}></div>
方法页面:modifier.yangshi.php
<?php
function smarty_modifier_yangshi($str,$color="red",$size="16")
{
    $str = "<span style='color:{$color}; font-size:{$size}px'>{$str}</span>";
    return $str;
}
截取
<div><{$jiequ|substr:8:"***"}></div>
方法页面:modifier.substr.php
<?php function smarty_modifier_substr($str,$num=10,$end="...") { $str = substr($str,0,$num-3); $str = $str.$end; return $str; }
性别
<div><{$sex|sexname}></div>
<?php
function smarty_modifier_sexname($sex)
{
    /*if($sex)
    {
        return "男";
    }
    else
    {
        return "女";
    }*/
    
    return  $sex?"男":"女";
}
民族
<div><{$nation|nationname}></div>
方法页面:modifier.nationname.php
<?php function smarty_modifier_nationname($nation) { $db = new MySQLi("localhost","root","123","mydb"); $sql = "select name from nation where code='{$nation}'"; $result = $db->query($sql); $attr = $result->fetch_row(); return $attr[0]; } 该变量调节器方法不能调用类DBDA.php,报错

原文地址:https://www.cnblogs.com/jinshui/p/5700423.html