smarty是php开发中非常流行的一个模板,以前曾发过一篇文章php smarty中文截取插件开发示例是说明如何开发smarty插件的,这篇文章将分享一下如何为smarty模板做一个for循环的扩展插件,方面我们日常的程序开发。

首先说说这个for循环扩展是做什么用的吧。今天在改以前的一个网站的时候,由于一些特定的原因需要在smarty模板中做一个for循环,虽然smarty是可以在模板中以{php}......{/php}标签的形式来直接书写php语句语法的。但由于循环中要用到模板中的变量的值,而在模板中直接写的php语句没办法获取到模板变量中的值,所以这个想法就行不通了,最后就想到是不是也可以实现在smarty模板中直接使用for循环呢?

下面是作者为smarty增加一个for循环扩展插件的具体步骤。

(1)在smarty模板的安装目录下的plugins目录内新建一个文件,命名为 block.for.php ,然后在这个文件里面输入如下代码:

$v){

switch($k){

case 'start':

case 'to':

case 'step':

$$k=(int)$v;

break;

default:

$smarty->trigger_error("textformat: 未知属性:'$k'");

}

}

$_output='';

for($_x=$start;$_x<=$to;$_x+=$step){

$_output.=$content."\n\r";

}

return $_output;

}

(2)然后就可以直接在smarty模板中使用for循环了,作者的使用案例如下:

php文件部分代码:

$vote='[[[';//我要在模板中将这三个符号转变为三个五角星图片

$smarty->assign('vote',$vote);

smarty模板文件部分代码:

{if false!==$vote|@stripos:'['}

{for start=1 to=$vote|@strlen step=1}

{/for}

{/if}

ok,以上问题解决。大同小异,如果你还需要为smarty扩展更多功能,方法同上,基本上都可以实现。

您可能感兴趣的文章smarty 模板中循环表格补充不全的td

smarty模板中使用php函数以及smarty模板中如何对一个变量使用多个函数

thinkphp模板中判断volist循环的最后一条记录

smarty模板中判断数组为空的方法

smarty模板中给信息添加最新标签

smarty模板保留变量总结

php smarty中文截取插件开发示例

smarty模板中如何生成随机数

http://www.bkjia.com/PHPjc/764150.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764150.htmlTechArticlesmarty是php开发中非常流行的一个模板,以前曾发过一篇文章php smarty中文截取插件开发示例是说明如何开发smarty插件的,这篇文章将分享一下...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

php smarty模板遍历,smarty模板中for循环的扩展插件_PHP教程相关推荐

  1. smarty 模板 for循环 php,smarty模板中for循环的扩展插件

    smarty是php开发中非常流行的一个模板,以前曾发过一篇文章php smarty中文截取插件开发示例是说明如何开发smarty插件的,这篇文章将分享一下如何为smarty模板做一个for循环的扩展 ...

  2. python list遍历删除_Python中list循环遍历删除数据的正确方法

    前言 初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) f ...

  3. 记录开发移动端项目过程中的各种问题、插件及教程(不定时更新)

    本文为整理记录本人开发移动端项目的过程中,针对项目中业务需求所碰到的各种坑.用到的各种插件及教程整理?. 以下为教程整理: 1.再聊移动端页面的适配_Layout, 布局, mobile, CSS 教 ...

  4. 在anaconda中为jupyter安装扩展插件

    安装过程: 1.在开始菜单中打开Anaconda Prompt 2.执行如下安装命令: conda install -c conda-forge jupyter_contrib_nbextension ...

  5. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  6. php在双引号中输出变量要加大括号,php中输出变量加大括号{}作用_PHP教程

    php输出变量加大括号,这是什么写法?看下面一段代码: 代码如下 header("Content-Type:text/html; charset=utf-8"); $test=&q ...

  7. ci php做记录删除,CI(CodeIgniter)框架中的增删改查操作_PHP教程

    CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 代码如下: class ModelName extends CI_Model { funct ...

  8. cookie购物车php简单,php中利用cookie实现购物车实例_PHP教程

    – phpMyAdmin SQL Dump – version 2.11.9.2 – – 主机: 127.0.0.1:3306 – 生成日期: 2009 年 12 月 06 日 02:05 – 服务器 ...

  9. php如何定义和使用常量,PHP中如何定义和使用常量_PHP教程

    1.自定义常量 * 必须用函数define()定义 * 定义完后其值不能再改变了 * 使用时直接用常量名,不能像变量一样在前面加$s 例如:define("PI",3.14);定义 ...

最新文章

  1. Spark源码学习之IDEA源码阅读环境搭建
  2. java有没有求组合的函数_如何在Java 8中使用compose和andThen组合函数
  3. 【Network Security!】用户组管理与批处理中(:goto)的用法
  4. 网络嗅探混杂模式与非混杂模式的区别
  5. Android studio 克隆分支
  6. Mac中搭建Kubernetes
  7. 注册表删除chrome插件
  8. Nginx安装负载均衡配置 fair check扩展
  9. struts如何使用命名空间_Python基础篇:作用域和命名空间
  10. 前后端通吃,vue大全Mark一下
  11. Web前端三大框架的总结,你是否知道呢?
  12. 30个非常有趣的404错误页面设计欣赏
  13. 25个常用Matplotlib图的Python代码
  14. 参考文献的序号如何设置
  15. Web网站扫【小程序码】登录的技术实现
  16. 本地文件压缩上传linux系统,使用压缩的方式将Windows下的zip压缩包上传到Linux系统的方法解析...
  17. 解决私有仓库 git 没有权限的问题
  18. 扫描二维码下载app,判断是Android还是ios,并跳转到不同的下载地址
  19. QT中的视频显示优化
  20. 手把手教你如何在广交会使用OBS直播丨汇信外贸软件

热门文章

  1. spring 源码阅读笔记-从浅到深的解析
  2. 获取Excel中Undo按钮的项目
  3. 生产成本 - 异想天开
  4. Exchange 2013/2016监控邮箱的一些介绍
  5. ubuntu系统写路由指令_linux系统下,traceroute路由跟踪指令详解
  6. 计算机专业研究生需要什么笔记本电脑,计算机专业研究生买笔记本,再请提建议!...
  7. Mybatis核心源码赏析(一)
  8. 《随机漫步的傻瓜》---寻找你的投资原则,查理芒格说:当成功概率很高的时刻,下最大的赌注,其余时间按兵不动...
  9. kaldi群和kaldi新手群
  10. GE SR469-P5-HI-A20 带有5A相CT次级线圈的标准装置