面试题之smarty模板引擎

4793阅读
0评论
0点赞

1. 编译和缓存区别?   smarty的编译过程就是把模板拿过来,把里面的标签替换成相应php代码,这就是smarty的编译, 其实就是php和html混合的过程   smarty的缓存需要手动开启,smarty的缓存就是把编译好的文件执行后,同时生成一份静态的html页面,再次访问的时候,你访问的就是是html文件了,所以就效率来说,要高一些   2.什么是smarty? Smarty的优点是什么? Smarty是一个使用PHP写出来的PHP模板引擎,目的是要使用PHP程序同美工分离,使的程序员改变程序的逻辑内容时不会影响到美工的页面设计,美工重新修改页面时不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。(也易于程序的多样式开发) Smarty优点 1. 速度快:相对其他模板引擎。 2. 编译型:采用smarty编写的程序在运行时要编译成一个非模板技术的PHP文件 3 缓存技术:它可以将用户最终看到的HTML文件缓存成一个静态的HTML页 4. 插件技术:smarty可以自定义插件。 不适合使用smarty的地方 1. 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新 2.小项目。小项目因为项目简单而美工与程序员兼于一人的项目   3.在模板中使用{$smarty}保留变量   {$smarty.get.page} //类似在php脚本中访问$_GET[page] {smarty.cookies.} {smarty.post.} {smarty.session.} {smarty.server.}   4.在模板中访问php中的变量 在php脚本中有系统常量和自定义常量两种,同样这两种常量在Smarty模板中也可以被访问,而且不需要从php中分配,只要通过{$smarty}保留变量就可以直接输出常量的值。在模板中输出常量的示例: {$smarty.const._MY_CONST_VAL} {$smarty.const.__FILE__}   5.变量调解器   {$var|modifier1|modifier2|........}   <{$str}>
<{$str|capitalize}><{*首字母大写*}>
<{$str|upper}><{*全部大写*}>
<{$str|lower}><{*全部小写*}>
<{$str|lower|upper}><{*全部大写,调节从左至右*}>
<{$leg|truncate}><{*字符串截取,默认80个字符*}>
<{$leg|truncate:10}><{*字符串截取,前10个,包括...三个字符*}>
  6. php查询mysql数据库时,查询中文结果时出现的乱码。怎么解决???? 1.文件属性(另存为) 2.文件meta(设置浏览器解析的时候) 3. 连接数据库时编码设定 4. PHP文件中使用header函数确定编码   7.缓存机制   如果开启了缓存,smarty同时生成一份静态的html页面,如果在设定的时间没有过期,再次访问的时候,你访问的就是是html文件了,减少了读取数据库,所以就效率来说,要高一些。   8. smarty的赋值和载入模板 $Smarty->assign(name,value) $Smarty->display(‘index.html’)   9.marty模板技术的用途是什么? 为了php与html分开,美工和程序员各司其职,互不干扰。   10. smarty配置主要有哪几项? 1. 引入smarty.class.php; 2. 实例化smarty对象; 3. 重新修改默认的模板路径; 4. 重新修改默认的编译后文件的路径; 5. 重新修改默认的配置文件的路径; 6. 重新修改默认的cache的路径。 7. 可以设置是否开启cache。 8. 可以设置左侧和右侧定界符。   11. smarty在使用过程中需要注意哪些细节? Smarty是基于MVC概念的一种模板引擎,它将一个页面程序分成了两部分来实现:即视图层和控制层, 也就是说smarty技术将用户UI与php代码分离开。 这样程序员和美工各司其职,互不干扰。   12. smarty运用过程中要注意以下几个问题: 1.正确配置smarty。主要要实例化smarty对象,配置smarty模板文件的路径; 2.php页面中使用assign赋值 和display显示页面; 3.smarty模板文件中不允许出现php代码段,所有的注释,变量,函数都要包含在定界符内。 A.{} B. foreach C. if else D. include E. Literal

评论(0)
暂无评论