smarty小技巧之6个标签

摘要:
js和jquery都有类似{}的符号。smart会将其理解为php的变量吗?如果不添加literal标记,smart当然会将其理解为变量,但它不会,例如:{literal}functiongetAbsLeft{varl=e.offsetLeft;while+=e.offset Left;return;}functiongetAbsTop{vart=e.offsettTop;while+=e.offSet Top;return;{/literal}4,php标记当您习惯于赋值时,您是否想过直接在模板文件中编写php代码?我想有时候你会想。手机屏幕很小,所以估计使用智能手机的可能性也很小。

1,capture标签

capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的。例子:

  1. {capture name=test}
  2. <img src=”testimg.jpg”>
  3. {/capture}
  4. <div class=”image”>
  5. {$smarty.capture.test}
  6. </div>

说明:
在{capture name=”test”}和{/capture}之间的内容被存储到变量$test中,该变量由name属性指定.在模板中通过 $smarty.capture.test 访问该变量.如果没有指定name 属性,函数默认将使用”default” 作为参数,这一点很jquery中的clone

2,config_load标签

config_load可以直接将文件中的内容读取出来,这样可以省掉assign这一步。

  1. test.csv:
  2. pageTitle = ”config_load_test”
  3. bodyBgColor = ”#eeeeee”
  4. img = ”girl.jpg”
  5. width=”100″
  6. height=”100″
  7. index.tpl:
  8. {config_load file=”test.csv”}
  9. <html>
  10. <title>{#pageTitle#}</title>
  11. <body bgcolor=”{#bodyBgColor#}”>
  12. <img src=”{#img#}” width=”{#width#}” height=”{#height#}”>
  13. </body>
  14. </html>

上述过程中如果出现这样的问题Warning: Smarty error: unable to read resource, 请查看一下,你的test.csv是不是放在smarty的配置目录中,默认配置目录是configs

  1. /**
  2. * The directory where config files are located.
  3. *
  4. * @var string
  5. */
  6. var $config_dir      =  ’configs’;

3,literal标签的使用

做web开发,难免会写一些JS,jquery代码。js和jquery里面都会{}这样的符号,smarty会不会把它理解成php的变量呢?如果你不加literal标签的话,smarty肯定会把它理解变量了,加了就不会,例如:

  1. {literal}
  2. function getAbsLeft(e){
  3. var l=e.offsetLeft;
  4. while(e=e.offsetParent)l+=e.offsetLeft;
  5. return l;
  6. }
  7. function getAbsTop(e){
  8. var t=e.offsetTop;
  9. while(e=e.offsetParent)t+=e.offsetTop;
  10. return t;
  11. }
  12. {/literal}

4,php标签

当你习惯了assign后,你有没有想过,在模板文件里面直接写php代码呢,我想有的时候你肯定很想吧。例如:

  1. {php}
  2. global $result;
  3. foreach($result as $key=>$value){
  4. echo ”key=$key,value=>$value<br>”;
  5. }
  6. {/php}

5,strip标签

strip标签去除标签内的空格和回车,这一点我觉得,做手机开发的朋友肯定用的到,因为全角空格有可能会导致整个页面错乱,甚至是一个空白页面。手机屏幕小,估计用smarty的可能性也比较小。

  1. {strip}
  2. <div>
  3. <font color=”red”>strip</font>
  4. </div>
  5. {/strip}

6,fetch标签

fetch标签根php的file_get_contents挺想的,都可以把文件中的内容读出来,并且是个字符串的形势

  1. {fetch file=”./aaaa.txt” assign=”result”}
  2. {if is_array($result)}
  3. <b>is array</b>
  4. {else if}
  5. <b>not array</b>
  6. {/if}

免责声明:文章转载自《smarty小技巧之6个标签》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇echarts之tooltip-trigger【转】Visual Studio团队资源管理器 Git 源码管理工具简单入门下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php性能调优

第一章  针对系统调用过多的优化 我这次的优化针对syscall调用过多的问题,所以使用strace跟踪apache进行分析。 1.  apache2ctl -X & 使用-X(debug)参数启动httpd进程,这个时候只启动1个httpd进程 2. ps -ef | grep httpd 找到需要strace的pid 3. strace -p...

实践windows下 speex 1.2rc1 中的回声消除功能(转)

看到网上很多希望使用speex aec的, 似乎找不到win32下的例子, 我这里尝试做了一个, 效果还行, 使用 上面是三路实时音频录下后, 在audacity中显示, 第一路为本地mic采集, 第二路为本地回放, 第三路为经过speex_echo_cancellation() 处理后的, 这个测试中, 为间断的读"1, 2, 3...", 图中选中的是...

19个PHP模板引擎

PHP 模板引擎 广泛应用于分离模板和布局。 使用PHP模板引擎,可以让网站的维和更新容易,创造一个更加良好的开发环境,让开发和设计工作更容易结合在一起。 它肯定也有一些不足之外,比如性能 (大多数PHP模板引擎在这方面都还是做的比较好的) 和需要学习新的语法 (偶尔会这样). 说到这里, 使用一个 模板引擎 并不一定就适合每一个项目. 一个网站如果只有少...

PHP之Smarty模板引擎

前面的话对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名、功能最强大的一种PHP模板引擎。Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进、文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充。另外,Smarty也是一种自由软件,用户可以自由...

OpenCV —— 写入AVI视频文件

打开视频文件,对每一帧进行极坐标变换,然后将转换生成的图像序列写入视频文件中 #include "cv.h" #include "highgui.h" int main(int argc,char** argv) { CvCapture* capture=0; capture = cvCreateFileCapture("video.av...

如何在ThinkPHP2.1中使用Smarty3

今天上课 讲解到了ThinkPHP框架的模板扩展。使用ThinkPHP框架的时候不想采用TP自带的模版系统,而使用第三方的模版系统,为什么有人有这样的想法?有要求就要满足么,搭建了一下,顺便整理一下贴出来大家仔细看看手册了, 除了使用内置的模板引擎外,系统还支持模板引擎扩展。并且官方已经提供了包括Smarty、EaseTemplate、TemplateLi...