目录

1.环境搭建

文件夹目录

|--libs      Smarty核心文件

|--demo 开发目录

|--cache  缓存目录

|--template_c  模板编译生成目录

|--tpl  模板目录

|--*.php  php文件

2.基本配置

test.php

//引入smarty类

require("../lib/Smarty.class.php");

//实例化对象

$smarty = new Smarty();

//配置Smarty

$smarty->left_delimiter = "{"; //左定界符

$smarty->right_delimiter = "}"; //右定界符

$smarty->template_dir = "tpl"; //模板目录

$smarty->compile_dir = "template_c"; //模板编译生成目录

$smarty->cache_dir = "cache"; //缓存目录

/*Smarty的缓存机制通常不开启*/

//$smarty->caching = true; //开启缓存

//$smarty->cache_lifetime = 120; //缓存时间

//smarty两个基本方法

$smarty->assign('articleTitle',"fuck the sky"); //设置title变量,赋值

$smarty->display('test.html'); //在test.html模板中展示

3.Smarty变量调节器

{* 1.首字母大写capitalize*}

{$articleTitle|capitalize}

{* 2.字符串连接 cat*}

{$articleTitle|cat:" yesterday."}

{* 3.日期格式化 date_format*}

{$yesterday|date_format}

{* %H:时 %M:分 %S:秒 %Y:年 %B:月 %e:日 %A:星期 *}

{$yesterday|date_format:"%A, %Y %B %e %H:%M:%S"}

{* 4.为未赋值或为空的变量指定默认值default*}

{$articleTitle|default:"no title"}

{* 5.转码 escape*}

{*用于html转码,url转码。默认是html转码*}

{* 6.小写 lower 大写 upper*}

{* 7.所有的换行符将被替换成
nl2b*}

{{$articleTitle|nl2br}}

4.Smarty条件判断

{* eq(==) neq(!=)gt(>)lt(

{* 修饰词时必须和变量或常量用空格格开*}

{if $name eq "Ryan"}

Hello Boy.

{elseif $name eq "YY"}

NO.

{else}

Who

{/if}

5.Smarty的循环

test.php中定义$articlelist数组

$articlelist = array(

array(

"title" => "第一篇文章标题",

"author" =>"第一作者",

"content" =>"第一内容"

),

array(

"title" => "第二篇文章标题",

"author" =>"第二作者",

"content" =>"第二内容"

)

);

test.html中

{* section循环 *}

{* 1.start 循环执行的初始位置。如果该值为负数,开始位置从数组的尾部算起*}

{* 2 step 该值决定循环的步长。*}

{* 3.设定循环最大执行次数。*}

{* 4.show 决定是否显示该循环。*}

{section name=article loop=$articlelist}

{$articlelist[article].title}

{$articlelist[article].author}

{$articlelist[article].content}

{/section}

{* foreach循环 *}

{foreach $articlelist as $article}

{$article.title}

{$article.author}

{$article.content}

{foreachelse}

NULL

{/foreach}

6.Smarty模板的引用

{*include file="header.tpl" *}

7.Smarty类与对象的赋值与引用

test.php中定义myObject类

class myObject{

function meth1($params){

return $params[0]." ".$params[1];

}

}

$myObj = new myObject();

$smarty->assign("myObj",$myObj);

test.html

{$myObj->meth1(array("苹果","炸了"))}

8.smarty函数插件

{* function 函数插件 *}

{*创建Smarty插件:*}

{* 在插件目录里新建文件 类型.插件名.php文件*}

{* 插件方法名字书写规范: smarty_类型_插件名([...]){}*}

{* 调用方法:函数名 参数1=数值1 参数2=数值2 *}

{test width=150 height =2}

//function.test.php

function smarty_function_test($params){

$width = $params["width"];

$height = $params["height"];

return $width*$height;

}

{* modifiers 修饰插件 *}

{* 调用方法:第一个参数|函数名 其他参数 *}

{$yesterday|test:"Y-m-d h:i:s"}

//modifier.test.php

function smarty_modifier_test($utime,$format){

return date($format,$utime);

}

{* block functions 区块函数插件 *}

{test2 replace="true" maxnum=10}

{$str}

{/test2}

//block.test2.php

function smarty_block_test2($params,$content){

$replace = $params["replace"];

$maxnum = $params["maxnum"];

if($replace == "true"){

$content = str_replace(",",".",$content);

}

$content = substr($content,0,$maxnum);

return $content;

}

避免重复造轮子的UI自动化测试框架开发

一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

ABP入门系列(1)——学习Abp框架之实操演练

作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

旺财速啃H5框架之Bootstrap(五)

在上一篇<>做了基本的框架,<>篇里也大体认识了bootst ...

Angular企业级开发&lpar;5&rpar;-项目框架搭建

1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

Scrapy框架爬虫初探——中关村在线手机参数数据爬取

关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...

制作类似ThinkPHP框架中的PATHINFO模式功能

一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo ...

旺财速啃H5框架之Bootstrap(四)

上一篇<>已经把导航做了,接下来搭建内容框架.... 对于不规整的网页,要做成自适应就有点玩大了.... 例如下面这种版式的页面. ...

一起学 Java(三) 集合框架、数据结构、泛型

一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

Hibernatel框架关联映射

Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...

随机推荐

Leetcode 102 Binary Tree Level Order Traversal 二叉树&plus;BFS

二叉树的层次遍历 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...

js 获取 input file 文件 附给 image src

var a=document.querySelector('input[type=file]'); a.onchange = function (e) { //var reader = new Fil ...

Python Django manage&period;py提供的命令及用法

λpython manage.pyType'manage.py help 'for help on a specific subcommand. Available ...

mysql的having语句

mysql> use qq; Database changed mysql> #查询本店价比市场价省的钱,并且要求省钱200元以上的取出来 mysql> select goods_i ...

文件操作-php

PHP的优点

1.语法简单 2.学习成本低 3.开发效率高 4.跨平台 5.开发部署方便 6.开源框架非常丰富(如:ThinkPHP) 7.开源CMS系统非常丰富(如:Joomla,Wordpress) 8.开源网 ...

Python&lowbar;方法演示

class Root: __total=0 def __init__(self,v): #构造函数 self.__value=v Root.__total+=1 def show(self): #普通 ...

RHEL7 timedatectl命令

1.要显示系统的当前时间和日期,使用timedatectl命令,如下: [root@rhel7 ~]# timedatectl Local time: Mon -- :: EDT Universal ...

java面试题------40个Java集合面试问题和答案

Java集合框架为Java编程语言的基础,也是Java面试中非常重要的一个知识点. 这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的长处? 每种编程 ...

JsonConvert&period;DeserializeAnonymousType

string JsApiTicketString = string.Empty; using (StreamReader reader = new StreamReader(response.GetR ...

php smarty框架案例,PHP框架_Smarty相关推荐

  1. think php框架案例,ThinkPHP框架设计及扩展详解

    ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一些简单的开发示例中来深入了解一下这个框架给我们带来的开发便捷性,以及游刃有余的扩展设计.同时也从源码分析的角度看看框架的一些不足,尽 ...

  2. Unity PureMVC框架案例

    引言 PureMVC框架解读上:https://blog.csdn.net/qq_29579137/article/details/73692842 PureMVC框架解读下:https://blog ...

  3. 【RPC框架、RPC框架必会的基本知识、手写一个RPC框架案例、优秀的RPC框架Dubbo、Dubbo和SpringCloud框架比较】

    一.RPC框架必会的基本知识 1.1 什么是RPC? RPC(Remote Procedure Call --远程过程调用),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术. ...

  4. php框架和不用框架_如何选择一个PHP框架

    php框架和不用框架 PHP是世界上最受欢迎的编程语言之一,而最近的PHP 7版本使这种服务器端编程语言比以往任何时候都更好,更稳定. PHP被广泛用于大型项目中. 例如,Facebook利用PHP来 ...

  5. selenium自动化测试框架_自动化测试框架

    为了适应快速发展的行业生态系统的步伐,必须加快应用程序交付时间,而且必须不能以质量为代价.在更短的时间内达到质量的目的至关重要,因此质量保障倍受关注.为了满足对卓越质量和更快迭代的要求,越来越多的企业 ...

  6. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  7. python测试框架untest_python自动化测试框架unittest

    对于刚学习python自动化测试的小伙伴来说,unittest是一个非常适合的框架: 通过unittest,可以管理测试用例的执行,自动生成简单的自动化测试报告: 首先我们尝试编写编写一个最简单的un ...

  8. php 里的cl框架手册,CI框架学习笔记(一)

    本文是CI框架学习笔记的第一篇,主要介绍了CI框架的环境安装,基本术语以及框架流程,非常的详细,有需要的朋友可以参考下 最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直 ...

  9. 三大框架之spring框架+IoC控制反转、DI依赖注入

    三大框架:业务层框架Spring+IoC+DI 往期文章:jsp与cookie.重定向与RESTFul架构支持 下一章节: 持久层框架MyBatis 初识Spring框架 MyBatis 入门http ...

  10. 视频教程-AssetBundle框架设计_框架篇视频课程-Unity3D

    AssetBundle框架设计_框架篇视频课程 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过程.软件 ...

最新文章

  1. hashmap hashtable 的区别
  2. 国家微生物科学数据中心微生物组学数据汇交指南
  3. unity3d Json解析工具类
  4. E百科 | 基于MEC的边缘AI服务
  5. (21)FPGA资源共享
  6. iOS传感器开发——为APP添加手机密码、指纹进行安全验证
  7. Android View框架总结(二)View焦点
  8. 【图频处理】基于matlab GUI界面环图像处理与音乐播放系统【含Matlab源码 185期】
  9. Windows 适配 Apple Magic TrackPad2
  10. android6.0相机权限申请
  11. 论文参考文献DOI含义
  12. 电路设计之8:MOS管驱动设计
  13. 【nmon】nmon :服务器监控数据采集
  14. Ecshop模板开发(二十三):手机版显示商城
  15. 药品召回管理办法(征求意见稿)(转)
  16. 产品能力提升|互联网产品·视觉设计
  17. markdown中插入emoji表情方法总结,让你尽情使用表情符号
  18. MySQL---查看数据表结构
  19. Web of Science爬虫实战(Post方法)
  20. 因为这份简历,我拿到了阿里的offer!

热门文章

  1. GTK+ GUI库使用现状
  2. android日期与时间滑动选择器
  3. 我的软件开发理念和流程
  4. 若为自由故——重返 Linux 世界
  5. Mathematica基础
  6. 宋宝华: 纪念金庸先生——程序员的武侠世界
  7. OAuth2授权原理
  8. CSDN论坛如何查看我发布的帖子?
  9. Chinese Whisper 人脸聚类算法实现
  10. Windows XP的定时关机命令