搜索
首页后端开发php教程PHP的Smarty较为完整的笔记

PHP的Smarty较为完整的笔记

Apr 19, 2018 pm 03:10 PM
phpsmarty笔记

这篇文章介绍的内容是关于PHP的Smarty较为完整的笔记 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

1、设置目录文件:



2、配置文件配置信息:

这应当是在index.php中的内容:




[php] view plain copy



  1. <?php  
        header("content-type:text/html;charset=utf8");  
        include_once("libs/Smarty.class.php"); //包含smarty类文件   
      
        $smarty = new Smarty(); //建立smarty实例对象$smarty   
        $smarty->compile_dir = &#39;./templates_c/&#39;; //设置模板目录 ——这里的文件很重要的,需要写的模板文件  
        $smarty->compile_dir = &#39;./templates_c/&#39;;; //设置编译目录 ——混编文件,自动生成  
        $smarty->cache_dir = &#39;./cache/&#39;; //缓存目录   
        $smarty->cache_lifetime = 0; //缓存时间   
        $smarty->caching = true; //缓存方式   
      
        $smarty->left_delimiter = "{";   
        $smarty->right_delimiter = "}";   
      
        $smarty->assign("name", "注释"); //进行模板变量替换   
        $smarty->display("index.html"); //编译并显示位于./templates下的index.htm模板   
    ?>


一些套路的解释,但是很有必要了解一下:

2.1:include_once语句:

它将安装到网站的smarty文件包含到当前文件中,注意包含的路径一定要写正确。

2.2:$smarty = new Smarty():

这一句新建一个Smarty对象$smarty,简单的一个对象的实例化。

2.3:$smarty->templates(""):

这一句指明$smarty对象使用tpl模板时的路径,它是一个目录,在没有这一句时,Smarty默认的模板路径为当前目录的templates目录,实际在写程序时,我们要将这一句写明,这也是一种好的程序风格。


2.4:$smarty->templates_c(""):

这一句指明$smarty对象进行编译时的目录。在模板设计篇我们已经知道Smarty是一种编译型模板语言,而这个目录,就是它编译模板的目录,要注意,如果站点位于Linux服务器上,请确保teamplates_c里定义的这个目录具有可写可读权限,默认情况下它的编译目录是当前目录下的templates_c,出于同样的理由我们将其明确的写出来。

2.5:$smarty->left_delimiter与$smarty->right_delimiter:

指明在查找模板变量时的左右分割符。默认情况下为"{"与"}",但在实际中因为我们要在模板中使用3f1c4e4b6b16bbbd69b2ee476dc4f83a,Script中的函数定义难免会

使用{},虽然它有自己的解决办法,但习惯上我们将它重新定义为"{#"与"#}"或是"0d15f39b7e4506ddd5a4045ecf042a2d"或其它标志符,注意,如果在这里定义了左右

分割符后,在模板文件中相应的要使每一个变量使用与定义相同的符号,例如在这里指定为"4aec58afe4d4eb12c16e7fcf686536f1",htm模板中也要相应的将{$name}变

成f1ae60a094afb5383c24c6d7d49bae7e,这样程序才可以正确的找到模板变量。

2.6:$smarty->cache("./cache"):

告诉Smarty输出的模板文件缓存的位置。上一篇我们知道Smarty最大的优点在于它可以缓存,这里就是设置缓存的目录。默认情况下

为当前目录下的cache目录,与templates_c目录相当,在linux系统中我们要确保它的可读可写性。

2.7:$smarty->cache_lifetime = 60 * 60 * 24:

这里将以秒为单位进行计算缓存有效的时间。第一次缓存时间到期时当Smarty的caching变量设置为true时缓存将被重建。当它的取值

为-1时表示建立起的缓存从不过期,为0时表示在程序每次执行时缓存总是被重新建立。上面的设置表示将cache_lifetime设置为一天。

2.8:$smarty->caching = 1:

这个属性告诉Smarty是否要进行缓存以及缓存的方式。它可以取3个值,0:Smarty默认值,表示不对模板进行缓存;1:表示Smarty将

使用当前定义的cache_lifetime来决定是否结束cache;2:表示Smarty将使用在cache被建立时使用cache_lifetime这个值。习惯上使用true与

false来表示是否进行缓存。

2.9:$smarty->assign("name", "zaocha"):

该数的原型为assign(string varname, mixed var),varname为模板中使用的模板变量,var指出要将模板变量替换的变量名;其第二种原形为

assign(mixed var),我们要在后面的例子详细的讲解这个成员函数的使用方法,assign是Smarty的核心函数之一,所有对模板变量的替

换都要使用它。

2.10:$smarty->display("index.tpl"):

该函数原形为display(string varname),作用为显示一个模板。简单的讲,它将分析处理过的模板显示出来,这里的模板文件不用加路

径,只要使用一个文件名就可以了,它路径我们已经在$smarty->templates(string path)中定义过了。

程序执行完后我们可以打开当前目录下的templates_c与cache目录,就会发现在下边多出一些%%的目录,这些目录就是Smarty的编译

与缓存目录,它由程序自动生成,不要直接对这些生成的文件进行修改。


3、Smarty的注释:

枯燥的文字部分可以忽略:模板注释被*星号包围,而两边的星号又被定界符包围,例如 {* this is a comment *} 。smarty注释不会在模板文件的最后输出中出现,这与b3cb8c2b1f311694e159ce3674acf98e不同(译注:html注释在页面源码中可见,而smarty注释则不能)。这点非常有用,试想,注释只存在于模板里面,而在输出的页面中谁也看不见:)。

直观感受一下:




4、常量:

枯燥的文字部分可以忽略:配置文件变量是一个不用美元符号$,而是用#号包围着变量(#hashmarks#),或者是一个$smarty.config形式的变量。

直观的感受一下:



5、变量:

枯燥的文字部分可以忽略:模板变量用美元符号$开始,可以包含数字、字母和下划线,这与php变量很像。你可以引用数组的数字或非数字索引,当然也可以引用对象属性和方法。


译注:按照说明像$abc、$abc123、$abc_123、$abc[1]、$abc['a']、$abc->a、$abc->a()这些模板变量都是有效的。


直观感受一下:


变量输出前一定要有$符号!!!!!!!!!!!


6、函数



7、赋值数组



8、变量调节器(竖杠前面为第一个变量,:后为第二三........变量)




9、条件判断




10、secetion循环







11、foreach




12、文件的引入把一个类的对象以变量的形式


13、使用assign赋值到smarty模板中使用:


14、使用PHP中的函数,参考第八条的变量调节器



15、自定义函数的使用



16、functions函数插件的定义和使用


17、modifier变量调节器的定义和使用


18、block区块函数插件的定义和使用


19、for循环和while循环实例



20、img和option标签的使用

21、{block}的使用

相关推荐:

smarty模板引擎之配置文件数据以及保留数据

Smarty中的注释和截断功能详解

PHP中Smarty内置函数include详解


以上是PHP的Smarty较为完整的笔记 的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用PHP发送电子邮件的最佳方法是什么?使用PHP发送电子邮件的最佳方法是什么?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

PHP中依赖注入的最佳实践PHP中依赖注入的最佳实践May 08, 2025 am 12:21 AM

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

PHP性能调整技巧和技巧PHP性能调整技巧和技巧May 08, 2025 am 12:20 AM

phperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovesponsemetimes.2)优化

PHP电子邮件安全性:发送电子邮件的最佳实践PHP电子邮件安全性:发送电子邮件的最佳实践May 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

您如何优化PHP应用程序的性能?您如何优化PHP应用程序的性能?May 08, 2025 am 12:08 AM

TOOPTIMIZEPHPAPPLICITIONSFORPERSTORANCE,USECACHING,数据库imization,opcodecaching和SererverConfiguration.1)InlumentCachingWithApcutCutoredSatfetchTimes.2)优化的atabasesbasesebasesebasesbasesbasesbaysbysbyIndexing,BeallancingAndWriteExing

PHP中的依赖注入是什么?PHP中的依赖注入是什么?May 07, 2025 pm 03:09 PM

依赖性注射inphpisadesignpatternthatenhancesFlexibility,可检验性和ManiaginabilybyByByByByByExternalDependencEctenceScoupling.itallowsforloosecoupling,EasiererTestingThroughMocking,andModularDesign,andModularDesign,butquirscarecarefulscarefullsstructoringDovairing voavoidOverOver-Inje

最佳PHP性能优化技术最佳PHP性能优化技术May 07, 2025 pm 03:05 PM

PHP性能优化可以通过以下步骤实现:1)在脚本顶部使用require_once或include_once减少文件加载次数;2)使用预处理语句和批处理减少数据库查询次数;3)配置OPcache进行opcode缓存;4)启用并配置PHP-FPM优化进程管理;5)使用CDN分发静态资源;6)使用Xdebug或Blackfire进行代码性能分析;7)选择高效的数据结构如数组;8)编写模块化代码以优化执行。

PHP性能优化:使用OpCode缓存PHP性能优化:使用OpCode缓存May 07, 2025 pm 02:49 PM

opcodecachingsimplovesphperforvesphpermance bycachingCompiledCode,reducingServerLoadAndResponSetimes.1)itstorescompiledphpcodeinmemory,bypassingparsingparsingparsingandcompiling.2)useopcachebachebachebachebachebachebachebysettingparametersinphametersinphp.ini,likeememeryconmorysmorysmeryplement.33)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境