搜索
首页php教程php手册PHP模板引擎Smarty自定义变量调解器用法,模板smarty

PHP模板引擎Smarty自定义变量调解器用法,模板smarty

本文实例讲述了PHP模板引擎Smarty自定义变量调解器用法。分享给大家供大家参考,具体如下:

在 PHP 中,有很多处理文本的函数,您可以把要处理的文本通过函数处理之后,再调用 Smarty 模板引擎中的 assign() 赋值给变量,分配到模板中进行显示。

Smarty 中的变量调解器和 PHP 中处理文本的函数相似,不过语法不相同,在 Smarty 中,是通过 "|" 后面直接跟调解器函数名,如果有参数,得加在 ":" 后面,多个参数的话,累加即可。

格式:{$var|modifier1:"参数1":"参数2":参数3|modifier2|modifier3|...}

定义调解器的文件必须放置在 Smarty 中,具体路径是:libs/plugins/。其文件名称,必须按照 Smarty 的格式 modifier.调解器名.php

下面通过一个实例演示 Smarty 中,自定义变量调解器的使用

程序思路:做两个变量调解器,功能是:一个转换文本;一个截取文本。

init.inc.php(Smarty初始化文件)

<&#63;php
  define('ROOT_PATH', dirname(__FILE__)); //设置网站根目录
  require ROOT_PATH.'/libs/Smarty.class.php'; //加载 Smarty 模板引擎
  $_tpl = new Smarty(); //创建一个实例对象
  $_tpl->template_dir = ROOT_PATH.'/tpl/'; //设置模板文件目录
  $_tpl->compile_dir = ROOT_PATH.'./com/'; //设置编译文件目录
  $_tpl->left_delimiter = '<{'; //设置左定界符
  $_tpl->right_delimiter = '}>'; //设置右定界符
&#63;>

index.php(主文件)

<&#63;php
  define('CONST_VAR', 'ABC');
  require 'init.inc.php'; //引入模板初始化文件
  global $_tpl;
  $_str = 'abcdEFGHigklmnOPQRSTuvwsYz'; //定义一个字符串
  $_tpl->assign('str',$_str); //字符串赋值给str
  $_tpl->assign('str1',strtolower($_str)); //字符串全部转换为小写赋给str1
  $_tpl->assign('str2',strtoupper($_str)); //字符串全部转换为大写赋给str2
  $_tpl->assign('str3',ucfirst($_str)); //字符串首字母转换为大写赋给str3
  $_tpl->assign('str4',substr($_str, 0,15).'...'); //截取字符串前15个字符,后面的用'...'代替,并赋给str4
  $_tpl->assign('str5',strtoupper(substr($_str, 0,15)).'...'); //截取字符串前15个字符转换为大写,后面的用'...'代替,并赋给str4
  $_tpl->display('index.tpl'); //引入模板
&#63;>

tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Smarty 中的变量调解器</title>
</head>
<body>
  <{$str}><br />   <!-- 输出字符串原形 -->
  <{$str1}><br />  <!-- 输出字符串转换为小写-->
  <{$str2}><br />  <!-- 输出字符串转换为大写 -->
  <{$str3}><br />  <!-- 输出字符串首字母大写 -->
  <{$str4}><br />  <!-- 截取字符串,截取15个字符串,后面的用'...'代替 -->
  <{$str5}><br />  <!-- 截取字符串,截取15个字符串,转换为大写,后面的用'...'代替 -->
  <!--
    您会发现,使用赋值过来的变量,使用起来不是很灵活,
    如果需要处理字符串,就必须得在主文件中设立一个新变量,并把值赋给这个新变量。
    使用变量调解器,可灵活的处理字符串
   -->
  <{$str|transform}><br />      <!-- 输出字符串原形-->
  <{$str|transform:"lower"}><br />  <!-- 输出字符串转换为小写-->
  <{$str|transform:"upper"}><br />  <!-- 输出字符串转换为大写 -->
  <{$str|transform:"firstdx"}><br /> <!-- 输出字符串首字母大写 -->
  <{$str|subString:0:15:"###"}><br /> <!-- 截取字符串,截取15个字符串,后面的用'###'代替 -->
  <{$str|subString:0:15:"@@@"|transform:"upper"}><br />  <!-- 截取字符串,截取15个字符串,后面的用'@@@'代替 -->
  <{$str|transform:"upper"|subString:0:15:"@@@"}><br />  <!-- 功能同上 -->
</body>
</html>

/libs/plugins/modifier.transform.php(转换文件调解器)

<&#63;php
  /**
   * smarty_modifier_transform
   * 字符串转换的变量调解器函数
   * @param string $string 处理字符串
   * @param string $type  处理类型
   */
  function smarty_modifier_transform($string,$type) {
    switch ($type) {
      case 'upper' :
        $str = strtoupper($string);
        break;
      case 'lower' :
        $str = strtolower($string);
        break;
      case 'firstdx' :
        $str = ucfirst($string);
        break;
      default:
        $str = $string;
    }
    return $str;
  }
&#63;>

lib/plugins/modifier.subString.php(截取文本调解器)

<&#63;php
  /**
   * smarty_modifier_subString
   * 处理截取字符串调解器
   * @param string $string  处理字符串
   * @param int $start_num  开始位置,默认从头开始
   * @param int $end_num   结束位置,默认20
   * @param string $addTo   追加字符串,默认'...'
   */
  function smarty_modifier_subString($string,$start_num=0,$end_num=20,$addTo='...') {
    $_str = '';
    if (strlen(substr($string, $start_num, $end_num))>=$end_num) {
      $_str = substr($string, $start_num, $end_num).$addTo;
    } else {
      $_str = substr($string, $start_num, $end_num);
    }
    return $_str;
  }
&#63;>

执行结果:

通过上面的实例,表明调解器文件必须放在 Smarty 的插件目录 plugins 下,并且命名必须遵循 Smarty 的规则,这样,才能调用到您编写的调解器函数。还有一点需要说明,定义的函数名称也必须符合 Smarty 内定的命名规则,例如:smarty_modifier_XXX,并且一个调解器文件,只能放一个函数,不能放置多个。

好了,自定义调解器先介绍到这里, Smarty 中有很多已经写的调解器函数,可以拿来直接调用或修改成您自己喜欢的风格。关于 Smary 内置的调解器,后续章节会有详细介绍。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP模板引擎Smarty内建函数详解
  • PHP模板引擎Smarty内置变量调解器用法详解
  • PHP模板引擎Smarty中的保留变量用法分析
  • PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
  • PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
  • PHP模板引擎Smarty中变量的使用方法示例
  • smarty模板引擎从php中获取数据的方法
  • ThinkPHP使用smarty模板引擎的方法
  • 在PHP模板引擎smarty生成随机数的方法和math函数详解
  • PHP模板引擎Smarty的缓存使用总结
  • php smarty模板引擎的6个小技巧
  • [PHP]模板引擎Smarty深入浅出介绍
  • PHP模板引擎Smarty内建函数section,sectionelse用法详解
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器