多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP详细彻底学习Smarty

时间:2017-07-31 17:06:13 [来源]:郑州PHP培训学校

   PHP详细彻底学习Smarty

  基本语法
  所有的smarty标签都被加上了定界符.在smarty里,所有定界符以外的内容都是静态的,当smarty遇到了模板标签,将尝试解释他们,然后再以恰当的方式输出.
  默认情况下是 {和},但它们是可定制的.定制方法是:
  $smarty->left_delimiter = '';
  1.注释
  模板注释被*号包围,例如 {* this is a comment *}
  smarty注释将不被输出.它是模板内在的注释.
  2.变量
  模板变量以$开头,可以包含数字,字母和下划线。
  config_file变量是例外要用#变量名#的方法引用
  3.函数
  smarty标签输出一个变量或者调用某种函数.
  在定界符内函数和其属性将被处理和输出.例如:
  {funcname attr1="val" attr2="val"}.
  funcname为函数的名称比如:include等,attr1,attr2为属性名,val为属性相应的值。
  在模板里无论是内建函数还是自定义函数都有相同的语法.
  内建函数将在smarty内部工作,例如 {if}, {section} 和{strip}.他们不能被修改.
  自定义函数通过插件机制起作用,它们是附加函数,可以随意修改,自行添加.
  例如 {html_options} and {html_select_date}
  4.属性
  静态数值不需要加引号,布尔值(真或假)也不需要引号,可以是true,on,yes或者false,off,no. 但是字符串例外.变量同样被用到了,它们也不能加引号.
  5.在字符串中插入变量
  只能识别数字,字母,下划线和[]的组合,如果为复杂的形式需要用``将变量隔起来。比如{func var="test $foo.bar test"} 中只能识别变量$foo,要识别$foo.bar,需要写成{func var="test `$foo.bar` test"}的格式。
  6.一些保留字的显示方法
  在模板中如果要将smarty的一些保留字作为语言的内容显示出来,比如显示分隔符,默认为{}的方法是: {ldelim},{rdelim} 或者{$smarty.ldelim},{$smarty.rdelim} 或者可以把{}放在{literal} .. {/literal} 中间输出。
  smarty的保留变量
  {$smarty}保留变量可以被用于访问一些特殊的模板变量.
  以下是全部.
  页面请求变量
  以下是访问页面请求变量诸如get,post,cookies,server,enviroment和session变量的例子. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得系统环境变量path, {$smarty.request.username}取得get/post/cookies/server/env的复合变量。
  {$smarty.now}变量用于访问当前时间戳.
  可以用 date_format调节器格式化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
  {$smarty.const}
  你可以直接访问PHP常量. 例如{$smarty.const._MY_CONST_VAL}
  {$smarty.capture}
  可以通过 {capture}..{/capture}结构 截取的输出可以使用{$smarty} 变量访问.
  {$smarty.config}
  {$smarty}变量 可以访问已经加载的config变量.
  例如 {$smarty.config.foo}就可以表示 {#foo#}.
  {$smarty.section}, {$smarty.foreach}
  {$smarty} 变量可以访问'section'和'foreach'循环的属性.
  {$smarty.template}
  显示当前被处理的模板的名字.
  {$smarty.version}
  显示smarty模板的版本
  {$smarty.ldelim}
  显示左分隔符
  {$smarty.rdelim}
  显示右分隔符
  变量调节器
  变量调节器用于变量,自定义函数和字符串.
  可以使用'|'符号和调节器名称应用调节器.
  变量调节器由赋予的参数值决定其行为.
  参数由':'符号分开.
  如果你用变量调节器调节数组变量,结果是数组的每个值都被调节.如果你想要调节器调节整个数组,你必须在调节器名字前加上@符号.
  例如: {$articleTitle|@count}(这将会在输出 $articleTitle 数组里的数目)
  capitalize
  将变量里的所有单词首字大写. 参数值boolean型决定带数字的词是否首字大写。默认不大写
  count_characters
  计算变量值里的字符数.参数值boolean型决定是否计算空格数。默认不计算空格
  cat
  将cat里的参数值连接到给定的变量后面.默认为空。
  count_paragraphs
  计算变量里的段落数量
  count_sentences
  计算变量里句子的数量
  count_words
  计算变量里的词数
  date_format
  日期格式
  第一个参数控制日期格式.
  如果传给date_format的数据是空的,将使用第二个参数作为默认时间
  %a - 星期几的简写
  %A - 星期几的全写
  %b - 月份的简写
  %B - 月份的全写
  %c - 日期时间06/12/05 11:15:10
  %C - 世纪时间
  %d - 一个月的第几号(从 01 到 31)
  %D - 同 %m/%d/%y
  %e - 一个月的第几号,号为单数则前面加一空格 (从 1 到 31)
  %g - 世纪
  %G - 世纪 [0000,9999]
  %h - 同%b
  %H - 24小时形式的小时(从00到23)
  %I - 12小时形式的小时(从01到 12)
  %j - 一年中的第几天(从 001 到 366)
  %k - 24小时形式的小时,单数字前面加空格. (从 0 到 23)
  %l - 12小时形式的小时,单数字前面加空格.(range 1 to 12)
  %m - 月份 (range 01 to 12)
  %M - 分
  %n - 换行符
  %p - 显示早上还是下午`am' 或 `pm'
  %r - a.m. 或 p.m.形式的时间
  %R - 24小时形式的时间
  %S - 秒
  %t - tab符号
  %T - 同%H:%M:%S
  %u - 用 [1,7],表示星期几
  %U - 计算是该年的第几个星期,从该年的第一个星期天开始计算
  %V - 计算是该年的第几个星期, 从 01 到 53, 第一个星期必须至少有4天在这一年, 星期天作为这个星期的第一天
  %w - 用数字的形式表示是星期的第几天, 星期天 为 0
  %W - 用数字的形式是该年的第几个星期,从该年的第一个星期一开始计算
  %x - 显示日期:月/日/年
  %X - 显示时间:小时:分钟:秒
  %y - 不包括世纪的年份
  %Y - 包括世纪的年份
  %Z - 时区
  %% - 输出%
  其中有些有时不能正常输出。
  default
  默认
  为空变量设置一个默认值.
  当变量为空或者未分配的时候,将由给定的默认值替代输出.
  escape
  转码
  参数值为html,htmlall,url,quotes,hex,hexentity,javascript。默认是html转码
  indent
  缩进
  在每行缩进字符串,第一个参数指定缩进多少个字符,默认是4个字符.第二个参数,指定缩进用什么字符代替。
  lower
  小写
  This is used to lowercase a variable.
  将变量字符串小写
  nl2br
  换行符替换成
  regex_replace
  正则替换
  寻找和替换正则表达式.必须有两个参数,参数1是替换正则表达式. 参数2使用什么文本字串来替换
  replace
  替换
  简单的搜索和替换字符串必须有两个参数,参数1是将被替换的字符串. 参数2是用来替换的文本

上一篇:PHP生成HTML的技术原理是什么

下一篇:三种常见的PHP设计模式有哪些