ecshop smarty php,ecshop的smarty基础普及知识

ecshop板制造比拟中心的其实就是变量的运用,由于这些就是数据的底子,想从数据库里获取数据并显现在界面就有必要运用smarty来展现,下面是关于smarty的分析和运用。

Smarty是一个php模板引擎,它分隔了逻辑程序和外在的内容,供给了一种易于办理的办法.

Smarty需求web服务器运转php4.0.6和以上版别.

smarty装置需求smarty库文件。能够去官方网站http://smarty.php.net下载。

网上讲了许多装置的教程,可是我都没有成功,所以直接把整个目录名改为smarty直接仿制到了网站地点的目录下,然后翻开

http://网站途径/smarty/demo/index.php,显现正常,大概算是装置成功了。

根本语法

一切的smarty标签都被加上了定界符.在smarty里,一切定界符以外的内容都是静态的,当smarty遇到了模板标签,将测验解说他们,然后再以恰当的办法输出.

默许状况下是 {和},但它们是可定制的.定制办法是:

$smarty->left_delimiter = '';

1.注释

模板注释被*号围住,例如 {* this is a comment *}

smarty注释将不被输出.它是模板内涵的注释.

2.变量

模板变量以$最初,能够包括数字,字母和下划线。

config_file变量是破例要用#变量名#的办法引证

3.函数

smarty标签输出一个变量或许调用某种函数.

在定界符内函数和其特点将被处置和输出.例如:

{funcname attr1="val" attr2="val"}.

funcname为函数的称号比方:include等,attr1,attr2为特点名,val为特点相应的值。

在模板里无论是内建函数仍是自界说函数都有一样的语法.

内建函数将在smarty内部作业,例如 {if}, {section} 和{strip}.他们不能被修正.

自界说函数经过插件机制起效果,它们是附加函数,能够随意修正,自行增加.

例如 {html_options} and {html_sel ect_date}

4.特点

静态数值不需求加引号,布尔值(真或假)也不需求引号,能够是true,on,yes或许false,off,no. 可是字符串破例.变量相同被用到了,它们也不能加引号.

5.在字符串中刺进变量

只能辨认数字,字母,下划线和[]的组合,若是为杂乱的办法需求用``将变量隔起来。比方{func var="test $foo.bar test"} 中只能辨认变量$foo,要辨认$foo.bar,需求写成{func var="test `$foo.bar` test"}的格局。

6.一些保存字的显现办法

在模板中若是要将smarty的一些保存字作为言语的内容显现出来,比方显现分隔符,默许为{}的办法是: {ldelim},{rdelim} 或许{$smarty.ldelim},{$smarty.rdelim} 或许能够把{}放在{literal} .. {/literal} 中心输出。

smarty的保存变量

{$smarty}保存变量能够被用于拜访一些特别的模板变量.

以下是悉数.

页面恳求变量

以下是拜访页面恳求变量比如get,post,cookies,server,enviroment和session变量的比如. 例如{$smarty.server.SERVER_NAME}取得服务器变量,{$smarty.env.PATH}取得体系环境变量path, {$smarty.request.username}取得get/post/cookies/server/env的复合变量。

{$smarty.now}变量用于拜访当时时刻戳.

能够用 date_format调理器格局化输出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$smarty.const}

你能够直接拜访PHP常量. 例如{$smarty.const._MY_CONST_VAL}

{$smarty.capture}

能够经过 {capture}..{/capture}布局 截取的输出能够运用{$smarty} 变量拜访.

{$smarty.config}

{$smarty}变量 能够拜访现已加载的config变量.

例如 {$smarty.config.foo}就能够表明 {#foo#}.

{$smarty.section}, {$smarty.foreach}

{$smarty} 变量能够拜访'section'和'foreach'循环的特点.

{$smarty.template}

显现当时被处置的模板的姓名.

{$smarty.version}

显现smarty模板的版别

{$smarty.ldelim}

显现左分隔符

{$smarty.rdelim}

显现右分隔符

变量调理器

变量调理器用于变量,自界说函数和字符串.

能够运用'|'符号和调理器称号运用调理器.

变量调理器由赋予的参数值决议其行动.

参数由':'符号分隔.

若是你用变量调理器调理数组变量,成果是数组的每个值都被调理.若是你想要调理器调理整个数组,你有必要在调理器姓名前加上@符号.

例如: {$articleTitle|@count}(这将会在输出 $articleTitle 数组里的数目)

capitalize

将变量里的一切单词首字大写. 参数值boolean型决议带数字的词能否首字大写。默许不大写

count_characters

核算变量值里的字符数.参数值boolean型决议能否核算空格数。默许不核算空格

cat

将cat里的参数值连接到给定的变量后边.默许为空。

count_paragraphs

核算变量里的阶段数量

count_sentences

核算变量里句子的数量

count_words

核算变量里的词数

date_format

日期格局

榜首个参数操控日期格局.

若是传给date_format的数据是空的,将运用第二个参数作为默许时刻

%a - 星期几的简写

%A - 星期几的全写

%b - 月份的简写

%B - 月份的全写

%c - 日期时刻06/12/05 11:15:10

%C - 世纪时刻

%d - 一个月的第几号(从 01 到 31)

%D - 同 %m/%d/%y

%e - 一个月的第几号,号为奇数则前面加一空格 (从 1 到 31)

%g - 世纪

%G - 世纪 [0000,9999]

%h - 同%b

%H - 24小时办法的小时(从00到23)

%I - 12小时办法的小时(从01到 12)

%j - 一年中的第几天(从 001 到 366)

%k - 24小时办法的小时,奇数字前面加空格. (从 0 到 23)

%l - 12小时办法的小时,奇数字前面加空格.(range 1 to 12)

%m - 月份 (range 01 to 12)

%M - 分

%n - 换行符

%p - 显现早上仍是下午`am' 或 `pm'

%r - a.m. 或 p.m.办法的时刻

%R - 24小时办法的时刻

%S - 秒

%t - tab符号

%T - 同%H:%M:%S

%u - 用 [1,7],表明星期几

%U - 核算是该年的第几个星期,从该年的榜首个星期天开端核算

%V - 核算是该年的第几个星期, 从 01 到 53, 榜首个星期有必要至少有4天在这一年, 星期天作为这个星期的榜首天

%w - 用数字的办法表明是星期的第几天, 星期天 为 0

%W - 用数字的办法是该年的第几个星期,从该年的榜首个星期一开端核算

%x - 显现日期:月/日/年

%X - 显现时刻:小时:分钟:秒

%y - 不包括世纪的年份

%Y - 包括世纪的年份

%Z - 时区

%% - 输出%

其间有些有时不能正常输出。

default

默许

为空变量设置一个默许值.

当变量为空或许未分配的时分,将由给定的默许值替代输出.

escape

转码

参数值为html,htmlall,url,quotes,hex,hexentity,javascript。默许是html转码

indent

缩进

在每行缩进字符串,榜首个参数指定缩进多少个字符,默许是4个字符.第二个参数,指定缩进用啥字符替代。

lower

小写

This is used to lowercase a variable.

将变量字符串小写

nl2br

换行符交换成

regex_replace

正则交换

寻觅和交换正则表达式.有必要有两个参数,参数1是交换正则表达式. 参数2运用啥文本字串来交换

replace

交换

简略的查找和交换字符串有必要有两个参数,参数1是将被交换的字符串. 参数2是用来交换的文本

spacify

spacify是在字符串的每个字符之间刺进空格或许其他的字符串. 参数表明将在两个字符之间刺进的字符串,默许为一个空格。

string_format 字符串格局化

是一种格局化浮点数的办法.例如十进制数.运用sprintf语法格局化。参数是有必要的,规则运用的格局化办法。%d表明显现整数,%.2f表明截取两个浮点数。

strip 去掉(剩余空格)

交换一切重复的空格,换行和tab为单个或许指定的字符串. 若是有参数则是指定的字符串。

strip_tags 去掉一切html标签

truncate 截取

参数1,规则截取的字符数.默许是80个.

第二个参数指定在截取的那段字符串后加上啥字符.默许为...

第三个参数决议能否准确截取,默许状况下为false,则smarty不会切割单词。

upper 将变量改为大写

wordwrap 行宽束缚

榜首个参数指定阶段的宽度(也就是多少个字符一行,超越这个字符数换行).默许80.

第二个参数指定在束缚点运用啥字符(默许是换行符\n).

第三个参数决议能否准确截取字符,默许状况下是不准确截取,就是截取时不能分隔单词。

内建函数

内建函数不能私行修正。

capture

capture函数的效果是搜集模板输出的数据到一个变量里,而不是把它们输出到页面.例如任安在 {capture name="foo"}和{/capture}之间的数据都被收到了由函数的称号特点指定的变量{$foo}里,或许 {$smarty.capture.foo}里。若是函数没有姓名特点,将运用"default".每个{capture}都有必要对应 {/capture},也不能嵌套运用capture函数。

config_load

引证装备文件

file是有必要的,阐明要包括进来的装备文件称号,section阐明要加载的有些的称号,scope被处置的变量的效果域.有必要是 local,parent或许global.

local的意思是变量将在本模板里被加载.

parent 的意思是变量将在本模板和上级模板被加载.

global的意思是变量将运用到一切的模板.默许为local。变量能否在上级模板可视,默许为no。若是scope特点现已有了,这个值将被疏忽.

foreach,foreachelse

foreach循环是选择性的section循环.用于遍历相关数组.foreach的语法比section简略的多,可是作为一个折中它只能用于简奇数组.

foreach有必要的参数是from和item. from变量表明需求循环的数组的称号,item表明当时元素的变量名,key表明当时关键词的变量名,name表明拜访foreach特点的 foreach循环名。循环能够相互嵌套,被嵌套的循环之间的姓名有必要是独立的.foreachelse 在from变量没有值的时分被履行

include

用来引证其他的模板。

file特点是有必要的用来表明所引证模板的姓名,assign表明include文件即将分配的输出的变量。你能够自行用特点名="特点值"的办法界说恣意个局部变量。

include_php

用来在模板中引进php脚本。file是有必要的用来表明php脚本的途径,once断定若是在模板中引证了php脚本屡次,能否只装载一次。默许为 true。

insert

用来包括php脚本中的函数,name是有必要的,表明所刺进的脚本的称号,注重若是称号是name,则包括的函数则是insert_name(),所以所 有要刺进的函数要有前缀insert_ 。若是用了assign特点,则insert的输出将会分配给模板变量而不会显现。 script表明要引证的脚本途径。这个程序发生的内容将不会被缓存,在每次调用该页时从头履行,适用于广告,投票,查询成果等互动的当地。

if,elseif,else

if句子和和条件同php差不多,但每个词之间有必要用空格切割开。也有一些新的条件句子,罗列如下:eq持平,ne、neq不持平,gt大于,lt小 于,gte、ge大于等于,lte、le 小于等于,not非,mod求模。is [not] div by能否能被某数整除,is [not] even能否为偶数,$a is [not] even by $b即($a / $b) % 2 == 0,is [not] odd能否为奇,$a is not odd by $b即($a / $b) % 2 != 0

php

php符号能够让模板中能直接运用php言语。

section,sectionelse

section用来循环显现数组的数据,name和loop是有必要的参数。name表明嵌套名. section 能够嵌套运用,可是姓名有必要各不一样。loop表明循环的次数. sectionelse在loop参数为空的输出。start用来规则循环开端的指针,若是值为负则从数组尾部核算开端的指针,默许为0.step表明循 环的步数,为负则反向循环,默许为1.max设定循环的最大步数.show决议能否显现section.

section也有个人的变量处置section特点,用{$smarty.section.sectionname.varname} 来显现.

index

index用来显现当时循环的指针,从0开端.

index_prev

用来显现前一次循环的指针,从-1开端

index_next

用来显现后一次循环的指针.

iteration

显现当时循环的次数,从1开端.

first

若是当时循环为榜首个循环,则值为true.

last

若是当时循环为最终一个循环,则值为true.

rownum

同iteration.

loop

显现最终一次循环的指针,能够用在section中心的任何当地,也能够用在section之后.

show

show 决议能否显现section.

total

显现一共循环的次数,能够用在section中心的任何当地,也能够用在section之后.

strip

去掉剩余的空格

惯例函数

assign

assign用来在履行模板时分配变量值.var,value是有必要的参数.var为要分配值的变量名,value为分配的值.

counter

counter用来输出一个计数. 能够用多个计数,可是姓名有必要各不一样.name表明计数器名,默许为default.start表明计数的初始值,默许为1.skip计数的距离,默许 为1.direction表明计数方向,up或down,默许为up.print表明能否打印该值,默许为true.assign界说模板变量,计数器的 输出将被分配到assign界说的变量中.

cycle

Cycle用来循环显现一组数值.name表明cycle名,values("值1","值2",...)表明循环显现的一组数值.print表明能否显 示.advance决议能否显现下一个数值. delimiter决议value的分隔符,默许为逗号. assign界说模板变量,cycle的输出将被分配到assign界说的变量中.

debug

debug能够显现一切分配了值的变量,可是不显现模板内容,output特点决议显现的格局html或javascript,默许是html.

ev al

ev al用来在变量里刺进变量。var是刺进的变量名,assign把输出分配给一个变量。

fetch

用来取得文件内容,并输出文件内容,能够取得本地文件,http文件和ftp文件,file是取得文件的途径, assign把输出分配给一个变量。

html_checkboxes

html_checkbox用来用给定的数据创立checkbox。name表明checkbox的称号,values表明checkbox的 值,output表明checkbox的显现,sel ected表明被选选项的值,options表明一组checkbox的值和显 示,separator表明切割每个checkbox的符号,labels表明给输出增加标签,默许为true。

html_image

html_image用来为一个图像创立html标签,若是height和width不分配值将会主动生成。file是图像的路 径,height,width,alt同html标签,basedir是图像相对途径开端的目录的途径,默许为服务器根目录。href界说图像的连接。

html_options

输出下拉列表,参数有name,values,output,sel ected,options。

html_radios

输出单选框,参数同复选框。

html_sel ect_date

prefix界说各个下拉列表姓名的前缀,默许为Date_。time决议运用的时刻,默许是当时时刻。start_year决议下拉列表开端的年份,可 以用年份表明,也能够用与当时年份的相对年数来表明。默许是当时年份。end_year决议下拉列表完毕的年份,能够用年份表明,也能够用与当时年份的相 对年数来表明。默许是当时年份。display_days决议能否显现日期。display_months决议能否显现月份。display_years 决议能否显现年份。month_format决议显现月份的格局,默许为%B。day_format决议显现日期的格局,默许为%02d。 day_value_format决议日期值的格局,默许为%d。month_value_format决议月份值的格局,默许为%m。 year_as_text决议能否将年份按文本格局输出。reverse_years决议能否反向输出各年份。field_array用来取得一组变量, 能够用name[Day],name[Month],name[Year]的办法从form取得取得的值。 day_size,month_size,year_size增加巨细标签。 all_extra,day_extra,month_extra,year_extra增加额定的特点到sel ect或input标签。 field_order决议年月日下拉列表的次序,默许为MDY。field_separator不一样下拉列表之间的分隔符,默许是\n。 year_empty,month_empty,day_empty是在各下拉列表榜首栏显现的内容。

html_sel ect_time

prefix界说各个下拉列表姓名的前缀,默许为Time_。time决议运用的时刻,默许是当时时刻。display_hours决议能否显现小时。 display_minutes决议能否显现分钟。display_seconds决议能否显现秒数。display_meridian 决议能否显现上午或下午,即显现am/pm。use_24_hours 决议能否24小时制。minute_interval 决议分钟之间的距离。second_interval 决议秒数之间的距离。field_array用来取得一组变量,能够用name[Hour],name[Minute],name[Second]的办法 从form取得取得的值。all_extra,hour_extra,minute_extra,second_extra ,meridian_extra增加额定的特点到sel ect或input标签。

html_table

loop界说用于循环的一组数据。cols决议列的数目,rows决议行的数目,若是其间一个为空,另一个有值,则依据元素个数和有值的特点来核算另一个 的值,两者的默许值为3。inner决议元素的罗列方向cols则列跟着列摆放,rows则行跟着行摆放,默许为cols。 table_attr,tr_attr,td_attr分别为table,tr,td增加标签,若是tr_attr,td_attr是数组,将会循环增加 标签。trailpad用来填充最终一行没有值的单元格,默许是 。hdir决议每行元素的摆放方向,从左到右right或从右到左left,默许为right。vdir决议每列的摆放方向,从上到下down或从下到上 up,默许为down。

math

进行数字运算操作。equation和var是有必要的。equation界说运算式,能够运用的运算符有+, -, /, *, abs, ceil, cos, exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt, srans and tan。var给运算变量赋值。format断定成果的格局。assign将输出赋给一个参数。

mailto

运用mailto函数能使网络蜘蛛很难获取你的email地址,可是能在网页上正常显现,由于他把email地址进行了加密处置。address是有必要 的,界说email地址。text是显现在页面上的文本内容,默许是email地址。encode是加密email地址的办法,能够是none,hex或 javascript,默许是none。若是要把邮件发给其他的邮箱,能够用cc抄送,email地址之间用,切割。bcc则为密件抄送。subject 是邮件主题。newsgroups是宣布内容的新闻组,新闻组之间用,离隔。extra增加附加标签。followupto意思不知。

textformat

textformat用来格局化文本,他会去掉空格和特别字符,和规则行宽和缩进。style规则当时的格局,indent规则缩进的位数。 indent_first规则榜首行的缩进。indent_char用来缩进的字符,默许是一个空格。wrap规则行宽,即一行的字符数,默许是80。 wrap_char规则每行的分隔符,默许是\n。wrap_cut决议能否切割单词。assign将输出分配给变量。

常量

SMARTY_DIR

是到smarty类目录的彻底途径,有必要以/完毕。若是没有界说,将会主动决议途径.

SMARTY_CORE_DIR

是到smarty类core文件目录的彻底途径,有必要以/完毕。若是没有界说,将会主动界说为smarty_dir途径下面的子目录.

变量

$template_dir

默许的模板目录名,默许为"./templates".

$compile_dir

默许的编译模板目录名,默许为"./templates_c"

$config_dir

默许的config文件目录名,默许为"./configs".

$plugins_dir

默许的插件目录名,默许为"plugins".

$debugging

debugging操控台。即一个显现变量的窗口.

$debug_tpl

debug窗口的模板

$debugging_ctrl

另一种操控debugging的办法。

$autoload_filters

对一切的模板运用过滤程序,这个变量是一个数组,其间关键词是过滤的类型,值是过滤的姓名。

$compile_check

每次php履行将能否检查模板的内容能否改动。

$caching

决议能否缓存文件履行生成的文件。

$cache_dir

默许的模板缓存目录名,默许为"./cache".

$cache_lifetime

缓存的模板的过期时刻,以秒核算. $caching值为-1则缓存的模板永不过期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值