之前一直使用其它的模板引擎,今天在听bkJia培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨一翻,要是有什么不对的地方,希望朋友跟贴回复。 大家一起共勉学习。 同时也感谢张老师,为像我们这样的PHP初学者提供一个非常优秀的学习平台。
发现smarty是如此强大与神奇的一个东东,使我对它的好感不亚于对以前使用的模板引擎.
由于我默认是开启smarty的缓存的,但是在些地方的数据是实时更新或者更新较快的,不宜缓存,这样,局部缓存便有用武之地了。
1,insert 法
定义一个函数显示时间的:
<ol class="dp-c"> <li class="alt"><span><span class="keyword">function</span><span> insert_get_current_time(){ </span></span></li> <li> <span> </span><span class="vars">$timestamp</span><span>=</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$timestamp</span><span>)?time():</span><span class="vars">$timestamp</span><span>; </span> </li> <li class="alt"> <span> </span><span class="vars">$timeoffset</span><span>=(int) </span><span class="string">+8</span><span>; </span> </li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$ret</span><span>=</span><span class="func">gmdate</span><span>(</span><span class="string">"Y-n-j g:ia"</span><span>, </span><span class="vars">$timestamp</span><span> + </span><span class="vars">$timeoffset</span><span> * 3600); </span> </li> <li class="alt"><span>} </span></li> </ol>
然后在模板中:
<ol class="dp-c"><li class="alt"><span><span>{insert name=</span><span class="string">"get_current_time"</span><span>} </span></span></li></ol>
这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。
这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。
2,动态block 法
<ol class="dp-c"> <li class="alt"><span><span class="comment">//部分缓存 </span><span> </span></span></li> <li> <span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>) </span> </li> <li class="alt"><span> { </span></li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li> <span class="vars">$smarty</span><span>->register_block(</span><span class="string">nocache</span><span>, </span><span class="string">smarty_block_nocache</span><span>, false); </span> </li> </ol>
在模板中:
<ol class="dp-c"> <li class="alt"><span><span>{nocache} </span></span></li> <li> <span>{</span><span class="vars">$smarty</span><span>.now} </span> </li> <li class="alt"><span>{/nocache} </span></li> </ol>
这样每次刷新页面,显示的时间都是不同的。
3,插件block 法
在Smarty/plugins目录下建一个文件
block.nocache.php 内容如下:
<ol class="dp-c"> <li class="alt"><span><span><?php </span></span></span></li> <li> <span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>) </span> </li> <li class="alt"><span>{ </span></li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li><span>?> </span></li> </ol>
这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
