手机版

智能3配置和入门语法

时间:2021-09-06 来源:互联网 编辑:宝哥软件园 浏览:

一、智能3配置

下载Smarty文件

在Smarty官网下载Smarty文件,将下载的Smarty文件解压。Smarty的库文件在libs文件夹中。

我使用的PHP调试环境的程序集成包是phpstudy。默认情况下,D盘上会有一个WWW文件夹,WWW文件夹中会创建一个testSmarty的文件夹。testSmarty文件夹是本练习Smarty的项目根目录。在testSmarty中创建一个Smarty文件夹,并将libs中的文件复制到这个smarty文件夹中。目录结构如下:

智能配置

在testSmarty文件夹中创建一个测试文件夹,并在该文件夹中创建一个包含以下内容的config.php文件:

?phpheader(' content-type : text/html;charset=utf-8 ');//引入核心文件,实例化require('/www/test smarty/smarty/smarty . class . PHP ');$ Smarty=new Smarty();//配置//模板文件的路径$ smarty-template _ dir='/www/testsmarty/test/TPL ';//编译模板文件后得到的文件路径为$ smarty-compile _ dir='/www/testsmarty/test/template _ c ';//缓冲文件$ smarty-cache _ dir='/www/testsmarty/test/cache '的路径;//打开缓冲,默认关闭缓冲。$ smarty-cache=true;//缓冲区保留时间$ smarty-cache _ lifetime=120;设置路径时,我使用绝对路径,也可以使用相对路径。根据设置的路径,在测试文件夹中创建tpl、template_c和cache文件夹。

目录如下:

验证smarty配置是否成功:

在测试文件夹下,创建一个包含以下内容的start.php文件:

?Php//导入所需的配置文件(' config . PHP ');//将值$ smarty-assign ('text ',' hello smarty ')传递给模板文件;//渲染模板$ smarty-display(' start . TPL ');创造一个开始。第三方物流文件中的第三方物流文件,内容如下:

{$text}

模板文件的后缀不必是tpl

在浏览器中输入localhost :800/testsmarty/test/start . PHP

注意:阿帕奇在我这里是800端口

如果浏览器中可以显示hello Smarty,则表示Smarty配置成功。

二.入门语法

定界符

Smarty的标签位于分隔符之间。默认分隔符为{和},可以更改分隔符。按如下方式修改配置文件中的分隔符:

//将左边的分隔符改为#

$ smarty-left _ delimiter=' # ';//将右分隔符改为# $ smarty-right _ delimiter=' # ';

当Smarty读取分隔符之间的内容时,它会尝试解析并输出结果。分隔符之外的一切都是静态的。

给…作注解

注释以*开头,以分隔符结尾,如下所示:

{*这是注释*}

输出变量

//将值$smarty-assign('变量名',值)传递给要呈现的模板。传递的值可以是字符串,或者数组可以是对象。

当变量是字符串时,{$变量名}表示输出变量。

当变量是数组时,有两种方式输出变量,即:

a.{$arr.key}

b.{$arr['key']}

当它是一个对象时,可以通过obj-method()直接调用该对象的方法

条件判断

条件判断的基本句型如下:

{if $variable条件修饰符值1 }//部分{elseif $variable条件修饰符值2 }//部分{ else }//部分{/if}基本条件修饰符为:eq(等于)、neq(不等于)、gt(大于)、lt(小于)、lte(小于或等于修饰符前后应有空格

传播

Smarty中有两种循环,分别是foreach、section、for和while

分段循环

节不能循环通过关联数组,它只能循环通过连续数字下标的数组。如果要在关联数组中循环,请使用foreach

部分可以接受名称、循环、步骤、开始、最大、显示,其中名称和循环是必需的。Name是从每个循环得到的下标,loop是循环的值,step loop的步长默认为1,max是最大循环数,start loop的下标默认为0。如果开始是负的,循环将从数组的末尾开始。show指示是否显示循环内容,默认值为true。

如下所示:

在测试文件夹下,创建一个包含以下内容的section.php文件:

?PHP require(' config . PHP ');$article=array(array('title'='第一章',' name'=' qxqstar ',' content'=' smartysection loop第一章'),array('title'='第二章',' name'=' qxqstar ',' content '=' $ smarty-assign(' article ',$ article);$ smarty-display(' section . TPL ');在tpl文件夹下,创建一个包含以下内容的section.tpl文件:

ul { section name=item loop=$ article } Li { $ article[item]。title } pco hor : { $ article[item]。name }/p p content 3360 { $ article[item]。content}/p/Li {sectionelse}无文章{/section}

Foreach循环比section循环简单。foreach语法类似于php中的foreach语法。foreach可以执行section可以执行的任何功能,而且foreach更简单

{ foreach $ array var as $ item var } { foreach $ array var as $ key var=$ item var }示例如下:

在测试文件夹中创建一个foreach.php文件。文件内容如下:

?PHP require(' config . PHP ');$ articles=array('title'='第一章',' name'=' qxqstar ',' content'=' smartyforeach循环第一章'),array('title'='第二章',' name'=' qxqstar ',' content'=。$smarty-assign('articles ',$ articles);$ smarty-display(' foreach . TPL ');创建foreach。tpl文件夹中的TPL文件,包含以下内容:

ul { foreach $ articles as $ article } Li { $ article . title } p { $ article . name }/p p { $ article . content }/p/Li { foreach else } p无文章/p {/foreach}/ulfor循环

for循环用于创建具有以下语法的简单循环:

{对于$变量=$startValue到$entValue步骤$step}

{for $ I=0到10 step2} {$ I} {foreach}无法循环{/for }无法指定步骤,默认循环步长为1。对于,还可以指定max属性,该属性用于指定循环数

与foreach循环类似,for循环也有一个前级。{ forelse }在循环无法遍历时执行

While循环

Smarty的while循环类似于php中的while循环,语法如下:

{ while $ variable 0 }//某些{/while}在循环中使用{break}来停止循环,并{continue}退出当前循环并进入下一个循环

插件组件

Smarty插件的本质是功能。插件有三种类型,即函数插件、修改器插件(变量调整插件)和块插件

使用插件

函数插件的使用:{funcName param1=值.}

修饰符插件的使用:{$ variable |修饰符名称:param1.}

块插件的使用:

{blocknameparam1=值.} {$ content} {/blockname}如:

//使用//函数插件{ include file=' header . TPL ' }//使用修饰符插件{ ' ABC ' | cat 3360 ' d ' }//使用块插件{ text format wrap=10 } ABC defghikjlmn {/text format }制作插件。

有三种方法可以制作插件

1.使用registerPlugin函数注册编写的自定义函数

2.将编写好的插件放在smarty目录的Plugins目录中

3.PHP内置函数可以以修改插件(变量调整插件)的形式自动用在模板中

使用registerPlugin函数注册一个自定义插件。例子如下

在测试文件夹下,创建一个包含以下内容的defineFunc.php文件:

?PHP require(' config . PHP ');函数测试($ params){ $ P1=$ params[' P1 '];$ p2=$ params[' p2 '];返回$p1。$ p2} $ smarty-register plugin(' function ',' f_test ',' test ');$ smarty-display(' DefinedFuc . TPL ');在tpl文件夹下,创建一个包含以下内容的defineFunc.tpl文件:

{f_test p1='learn' p2=' Smarty'}

registerPlugin函数的第一个参数表示注册程序的类型,这里,function表示注册了一个函数插件,值可以作为block和修饰符获得。第二个参数是指注册的Smarty函数插件名称,第三个参数是指用户自定义的函数名称,第二个参数和第三个参数可以相同。

在Smarty中,当{f_test p1='learn' p2=' Smarty'}被执行时,p1和p2将被打包成一个数组并传递给我们定义的测试函数。

通过在插件文件夹中添加文件来制作插件

1.制作函数插件

在Plugins文件夹下创建一个function.test.php文件(函数表示这个函数插件,test表示插件名称),内容如下:

function smarty _ function _ test($ params){/$ params是一个关联数组$ w=$ params[' w '];$ h=$ params[' h '];返回$ w * $ h;}?直接在模板中使用测试函数插件

{测试h=3 w=5}

这两个参数将被打包成一个数组,并传递给smarty_function_test函数

2.制作修改器插件

在插件文件夹下创建一个modifier.test2.php文件(修饰符表示这个修饰符插件,test2表示插件名称)。内容如下:

函数smarty_modifier_test2($utime,$甲酸){ return date($甲酸,$ utime);}在模板中使用test2修改器插件

{$time|test2:'Y-m-d H-i-s'}

定义修饰符插件不同于函数插件。函数插件的用户定义函数只接收一个数组参数。修改器插件的用户定义函数

逐一列举接收到的参数

3.制作块插件

在Plugins文件夹下,创建一个block.test3.php文件(block代表这个block插件,test3代表插件名称),内容如下:

函数smarty_block_test3($params,$ content){ $ replace=$ params[' replace '];$ maxnum=$ params[' maxnum '];if($ replace==' true '){ str _ replace(',',',',$ content);str_replace(' . '.',$ content);} $content=substr($content,0,$ max num);返回$ content}在模板中使用test3块插件

{ test3 replace=' true ' maxnum=6 } abcdfederer {/test 3 } { test 3 } {/test 3 }被转移到smarty_block_test3中的第二个参数,test 3之后的参数被打包到一个数组中,并被转移到smarty_block_test3中的第一个参数。

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一些帮助,也希望多多支持我们!

版权声明:智能3配置和入门语法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。