扩展自定义函数的两种方式

1、通过registerPlugin()注册,仅对当前模板有效

[php] view plaincopy
  1. function getVerify($params,$smarty){
  2. if(empty($params['type'])||$params['type']>3||$params['type']<1){
  3. $type=1;
  4. }else{
  5. $type=$params['type'];
  6. }
  7. if(empty($params['length'])||$params['length']>6||$params['length']<=0){
  8. $length=4;
  9. }else{
  10. $length=$params['length'];
  11. }
  12. if($type==1){
  13. //数字验证码
  14. $string=join('',range(0,9));
  15. }elseif($type==2){
  16. $string=join('',array_merge(range('a','z'),range('A','Z')));
  17. }elseif($type==3){
  18. $string=join('',array_merge(range(0,9),range('a','z'),range('A','Z')));
  19. }
  20. return substr(str_shuffle($string),0,$length);
  21. }

规定函数里需要用到的参数都要用$params这个数组传入

$smarty,Smarty的对象

[php] view plaincopy
  1. $smarty->registerPlugin('function','verifyCode','getVerify');

function表示是自定义函数

verifyCode是自定义函数的名称

getVerify自定义函数中的调用的函数

调用该自定义函数

[php] view plaincopy
  1. <{verifyCode}>
  2. <hr />
  3. <{verifyCode type='2'}>
  4. <hr />
  5. <{verifyCode type='3' length='5'}>

2、以插件形式扩展全局自定义函数

[php] view plaincopy
  1. function smarty_function_verify($params,$smarty){
  2. if(empty($params['type'])||$params['type']>3||$params['type']<1){
  3. $type=1;
  4. }else{
  5. $type=$params['type'];
  6. }
  7. if(empty($params['length'])||$params['length']>6||$params['length']<=0){
  8. $length=4;
  9. }else{
  10. $length=$params['length'];
  11. }
  12. if($type==1){
  13. //数字验证码
  14. $string=join('',range(0,9));
  15. }elseif($type==2){
  16. $string=join('',array_merge(range('a','z'),range('A','Z')));
  17. }elseif($type==3){
  18. $string=join('',array_merge(range(0,9),range('a','z'),range('A','Z')));
  19. }
  20. return substr(str_shuffle($string),0,$length);
  21. }

函数命名规则:smarty_function_ verify ($params,$smarty){}

插件命名规则:function.verify.PHP

插件目录:plugins文件夹

调用该插件

[php] view plaincopy
  1. <{verify}>
  2. <hr />
  3. <{verify type='2'}>
  4. <hr />
  5. <{verify type='3' length='5'}>

smarty模板引擎_7-自定义函数相关推荐

  1. smarty中使用php函数,在smarty模板中使用PHP函数的方法

    在smarty模板中使用PHP函数的方法 发布于 2014-11-23 22:57:51 | 174 次阅读 | 评论: 0 | 来源: 网友投递 Smarty模板引擎Smarty是一个使用PHP写出 ...

  2. smarty.class.php,自定义min版smarty模板引擎MinSmarty.class.php文件及用法

    本文实例讲述了自定义的min版smarty模板引擎MinSmarty.class.php文件.分享给大家供大家参考,具体如下: 一.smarty的优点 smarty是一个使用PHP写出来的模板引擎,是 ...

  3. PHP 自定义 Smarty 模板引擎类 高洛峰 细说PHP

    smarty模板引擎类简单工作原理 利用Smarty 模板引擎类对模板文件中的变量进行编译,编译过程其实就是利用正则表达式翻译成PHP文件.例如 模板文件中{$title} 利用正则表达式找到并替换成 ...

  4. php 高洛峰 正则,PHP 自定义 Smarty 模板引擎类 高洛峰 细说PHP

    smarty模板引擎类简单工作原理 利用Smarty 模板引擎类对模板文件中的变量进行编译,编译过程其实就是利用正则表达式翻译成PHP文件.例如 模板文件中{$title}利用正则表达式找到并替换成 ...

  5. php 模板引擎 优点,Smarty模板引擎的优点

    Smarty模板引擎的优点 时间:2015-11-17 对PHP语言熟悉的程序员就会知道有个Smarty的名词,那么这个具体是什么呢?smarty是一个使用PHP编写的PHP模板引擎,是目前业务最著名 ...

  6. Smarty模板引擎技术二

    Smarty模板引擎技术 内建函数 include_php内建函数 作用:载入一个php文件,将载入的文件的内容赋值给一个变量 注意:该内建函数只能在2.0中使用,如果使用的话,必须得实例化Smart ...

  7. Smarty模板引擎和MVC设计模式

    Smarty模板引擎 一.什么是smarty? smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离 目的:使用户界面和业务数据的代码分离 smarty 第三方的类库 ...

  8. php中smarty模板的优点,php的smarty模板引擎有哪些特点

    php的smarty模板引擎有哪些特点2020-06-30 16:46:07 php的smarty模板引擎的特点有:1.运行速度快:2.不需要多余的模板语法解析:3.仅对修改过的模板文件进行重新编译: ...

  9. php中smarty模板的优点,Smarty模板引擎的优点

    Smarty模板引擎的优点 对PHP语言熟悉的程序员就会知道有个Smarty的名词,那么这个具体是什么呢?smarty是一个使用PHP编写的PHP模板引擎,是目前业务最著名,功能最强大的一种PHP模板 ...

最新文章

  1. 80 年代以来的操作系统 GUI 设计进化史
  2. 再见,2014;您好,2015!
  3. 活在无尽梦境的后续 β
  4. c++ map的使用方法[转]
  5. sqlserver2008r2安装
  6. 32位应用程序如何使用大于2GB的内存?
  7. 现在电脑的主流配置_主流级玩家 应该如何配置高性价比电脑
  8. 决策树(七)--Boost及源码分析
  9. 27. netstat
  10. jquery在选择元素的时候,可以写成var div=$(div)
  11. 超实用一键破解网页不能复制/右键菜单限制的 Bookmarklet 收藏夹书签小工具
  12. 数字PCR的数学原理及系统间相互比较
  13. 零基础学习编程大概需要多久?
  14. ps—添加、去除水印
  15. Masimo SafetyNet Alert™在西欧上市
  16. 华为设备配置IS-IS命令
  17. 不平衡多分类问题模型评估指标探讨与sklearn.metrics实践
  18. 美国医院管理历程,学而时习之
  19. SourceMap 使用教程
  20. 计算机科学与技术是英语一码,“计算机科学与技术专业本科课程”的英文翻译是什么?...

热门文章

  1. POJ3041 最小顶点覆盖
  2. C语言-动态内存分配总结
  3. 【C 语言】数组 ( 多维数组本质 | 步长角度 理解 多维数组本质 )
  4. 【Android 安全】DEX 加密 ( Application 替换 | 分析 Service 组件中调用 getApplication() 获取的 Application 是否替换成功 )
  5. 【错误记录】Flutter 构建报错 ( Error: Method not found: ‘CupertinoModalPopupRoute‘. | 下载最新 Flutter SDK 版本 )
  6. 【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )
  7. 网页分享到微信、微博、QQ空间、百度贴吧等
  8. Android 浏览器 —— 使用 WebView 实现文件下载
  9. USACO SEC.1.2 No.4 Palindromic Squares
  10. 在 word 中 mathType 菜单灰色,无法使用