002
来源:互联网 发布:淘宝怎样关店 编辑:程序博客网 时间:2024/04/26 03:14
Smarty程序篇 + 缓存篇 + 过滤器 + smarty如何应用到中级项目
<?php require_once 'smarty/Smarty.class.php'; $smarty = new Smarty(); //重定义分界符 $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; $title = 'Smarty模板引擎00'; $content = "Smarty模板引擎是目前世界上最著名的模板引擎"; //模板变量分配函数 assign $smarty->assign('title',$title); $smarty->assign('content',$content); //模板输出显示函数 display $smarty->display('templates/demo01.html');
/** * smarty 模板 * 文件夹解析 * libs/plugins 自定义插件文件夹 * libs/sysplugins 系统插件文件夹 * libs/debug.tpl 调试模板 * libs/Smarty.class.php Smarty3.0中的核心类文件 * libs/SmartyBC.class.php 向后兼容类,Smarty2.0版本, * 编译过程原理 * 用户请求 -> PHP文件 -> Smarty -> 模板文件 -> 编译文件 -> 执行输出 * smarty安装与配置 * 1、直接将 libs文件夹复制到项目的目录中重命名为smarty * 2、在Smarty.class.php文件夹的构造函数php文件夹的构造函数__construct函数中找对网站需要定义的目录函数中找对网站需要定义的目录 * 3、根据__construct函数中的设置去定义对应的目录 * smarty开发流程 * 1、在PHP页面中,包含Smarty.class.php文件到当前页面 * require_once 'smarty/Smarty.class.php'; * 2、实例化对象 $smarty = new Smartya(); * 3、分配变量到模板文件 $smarty->assign('name',$name); * 4、显示输出 $smarty->display($file.html); * smarty中相关属性和方法 * 1、左右定界符 smarty/Smarty.class.php * $left_delimiter $right_delimiter * *自定义定界符:xxx.php文件中 * $smarty->left_delimiter = '{{'; * $smarty->right_delimiter = '}}'; * 2、相关方法 * $smarty->assign($name,$value); 分配变量到模板文件 * $smarty->display($filename); 显示并输出相应的模板文件 * 3、常用路径设置(3.0版本后可自定义路径)xxx.php文件中 * $smarty->setTemplateDir() //模板目录 * $smarty->setCompileDir() //编译目录 * $smarty->setConfigDir() //配置文件 * $smarty->setCacheDir() //缓存目录 *
* 设计篇( 变量、保留变量与变量调节器 ) * 1、变量 * 1、从PHP中分配的变量 $smarty->assign($name,$value); * 2、从配置文件中读取变量 * {config_load file='config.conf'} //载入配置文件 * 调用方式2种 * {#变量名称#} * {$smarty.config.变量名} * 3、在模板文件中创建 * 方法1 : * 分配变量 :{assign var='name' value='value'} * 使用变量 :{$name} * 方法2 : * {$name = 'zhangSan'} * 2、smarty中的保留变量 * $smarty.get.page 相当于$_GET['page'] * $smarty.post.page 相当于$_POST['page'] * $smarty.request.username 相当于$_REQUEST['username'] * $smarty.cookies.username 相当于$_Cookies['username'] * $smarty.session.id 相当于$_SESSION['id'] * $smarty.server.SERVER_NAME 相当于$_SERVER['SERVER_NAME'] * $smarty.env.Path 相当于$_ENV['Path'] (环境变量) * * {$smarty.now} 取得当前时间戳 * 例:{$smarty.now|date_format:’%Y-%m-%d %H:%M:%S’} * {$smarty.const} 例:{$smarty.const.__FILE__} * {$smarty.capture} 获取capture模板输出 * {$smarty.config} * {$smarty.section} * {$smarty.template} * 3、变量调节器( 变量调节器可以组合使用 ) * {$var|capitalize} : 首字母大写 * {$var|upper} :字符串大写 * {$var|lower} :字符串小写 * {$var|cat:var2} :连接字符串 * {$var|date_format:”%Y%m%d”} :时间格式化 * {$var|default:”value”} :如果一个变量为空或未定义,那么采用默认值 * {$var|escape} :编码转义 * {$var|indent:10:”*”} 字符缩进,后面的参数代表每个缩进字符要放的字符 * {$var|nl2br} :\n转br * {$var|regex_replace:”/[\t\n]/”:””} 正则替换 * {$var|replace:”aa”:”bb”} 字符替换 * {$var|string_format:”%d”}:字符串格式化 * {$var|strip_tags} :去除HTML标签 * * {$var|count_characters:true} :字符计数 * {$var|count_paragraphs} :段落计数 * {$var|count_sentences} :句子计数 * {$var|count_words} :计算词数 * {$var|spacify:”^^”} :在字符之间插入相应字符如^^,插空 * {$var|strip: “*”} :去除重复空格 * {$var|truncate:30:”…”} :字符截取,注意,优缺点 * {$var|wordwrap:30:””} :行宽约 * * 4、系统内建函数 * 1、capture(作用:捕获一段变量或者内容,复制给var。常用与需要复用的模块内容) * {capture name='var'} * 内容 * {/capture} * 调用:{$smarty.capture.var} * 2、config_load * 使用全局变量 * {config_load file='配置文件路径'} * 调用方式:{#变量名#} * 使用局部变量 * {config_load file=’配置文件路径’ section=’节的名称’} * 调用方式:{#变量名#} * * 3、foreach(采用PHP语法进行遍历) * 4、foreach(采用Smarty中的语法进行遍历) * {foreach from=数组 key=键 name=名称 item=内容} * ... * {foreachelse} * ... * {/foreach} * foreach——附加属性 * $smarty.foreach.name.index @index 下标0 * $smarty.foreach.name.iteration @iteration 迭代(当前是第几次循环),默认从1开始 * $smarty.foreach.name.first @first bool 当时第一次该值为真 * $smarty.foreach.name.last @last bool当时最后一次该值为真 * $smarty.foreach.name.show @show 数据显示 true显示数据false不显示数据 * $smarty.foreach.name.total @total 循环的总次数 * 5、section / sectionelse (循环) * 《section主要是进行索引下标为0,并连续(一次递进)的索引型数组的遍历》 * {section name=名称 loop=循环数组 start=开始(0) step=步阶(1) max=最大循环次数} * ... * {sectionelse} * ... * {/section} * 6、include函数 * {include file="file" assign="var"} * 7、include_php(如果是smarty3.0需要载入兼容模板smarty) * {include_php file="file" assign="var" once="true/false"} * 8、if elseif else {/if} * 9、literal (标签内的数据将被当做文本处理) * {literal} ... {/literal} * 10、insert(自定义函数) * {insert name='func' assign="var"} * function insert func(){....} * 11、strip (功能及应用:去除任何位于 {strip}{/strip} 标记中数据的首尾空格和回车. 这样可以保证模板容易理解且不用担心多余的空格导致问题.) * {strip} ... {/strip} * * * 5、系统自定义函数 * 1、{debug} (功能:主要是开启调试窗口) * 2、fetch (功能:载入文件到当前文件,并赋值给var变量) * {fetch file=“file” assign=“var”} * * */
阅读全文
1 0
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- 002
- POJ 1826 The Best Farm 笔记
- tensorflow遇到No module named 'input_data'
- Add Again UVA
- jQuery2
- linux源配置-yellowcong
- 002
- ios 数组排序
- struts2复习笔记
- myBatis之java.util.Date类型如何映射到mysql的datetime类型
- win7在虚拟机上用Djangodebug模式部署服务器的简要步骤
- Android开发的那些小秘密分享
- 《快学Scala》16章习题参考解答(XML)
- ElasticSearch入门常用查询语句
- 内存