让你的Smarty更聪明_PHP
SMARTY
一、扩展你的Smarty1、准备功夫
<font size="2"><font face="Verdana">PHP代码:</font><hr></font><code><font color="#000000"> <font color="#0000bb"><br></font><font color="#007700">function </font><font color="#0000bb">Smarty_function_page </font><font color="#007700">( </font><font color="#0000bb">$params</font><font color="#007700">, &</font><font color="#0000bb">$Smarty </font><font color="#007700">) <br>{ <br> </font><font color="#0000bb">$href </font><font color="#007700">= </font><font color="#dd0000">'#'</font><font color="#007700">; <br> </font><font color="#0000bb">$space </font><font color="#007700">= </font><font color="#dd0000">' '</font><font color="#007700">; <br> <br> </font><font color="#0000bb">$frist </font><font color="#007700">= </font><font color="#0000bb">NULL</font><font color="#007700">; <br> </font><font color="#0000bb">$last </font><font color="#007700">= </font><font color="#0000bb">NULL</font><font color="#007700">; <br> <br> </font><font color="#0000bb">$page </font><font color="#007700">= </font><font color="#0000bb">5</font><font color="#007700">; <br> <br> </font><font color="#0000bb">extract</font><font color="#007700">(</font><font color="#0000bb">$params</font><font color="#007700">); <br> <br> if ( !</font><font color="#0000bb">$row </font><font color="#007700">|| </font><font color="#0000bb">$row </font><font color="#007700"><font color="#0000bb">1 </font><font color="#007700">) return </font><font color="#dd0000">' '</font><font color="#007700">; <br> <br> </font><font color="#0000bb">$pages </font><font color="#007700">= </font><font color="#0000bb">$row</font><font color="#007700">; <br> </font><font color="#0000bb">$curr_page </font><font color="#007700">= </font><font color="#0000bb">$now </font><font color="#007700">? </font><font color="#0000bb">$now </font><font color="#007700">: </font><font color="#0000bb">1</font><font color="#007700">; <br> </font><font color="#0000bb">$offset </font><font color="#007700">= </font><font color="#0000bb">2</font><font color="#007700">; <br> </font><font color="#0000bb">$from </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">- </font><font color="#0000bb">$offset</font><font color="#007700">; <br> </font><font color="#0000bb">$to </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">+ </font><font color="#0000bb">$page </font><font color="#007700">- </font><font color="#0000bb">$offset </font><font color="#007700">- </font><font color="#0000bb">1</font><font color="#007700">; <br> <br> if ( </font><font color="#0000bb">$page </font><font color="#007700">> </font><font color="#0000bb">$pages </font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$from </font><font color="#007700">= </font><font color="#0000bb">1</font><font color="#007700">; <br> </font><font color="#0000bb">$to </font><font color="#007700">= </font><font color="#0000bb">$pages</font><font color="#007700">; <br> } <br> else <br> { <br> if ( </font><font color="#0000bb">$from </font><font color="#007700"><font color="#0000bb">1</font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$to </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">+ </font><font color="#0000bb">1 </font><font color="#007700">- </font><font color="#0000bb">$from</font><font color="#007700">; <br> </font><font color="#0000bb">$from </font><font color="#007700">= </font><font color="#0000bb">1</font><font color="#007700">; <br> if ( ( </font><font color="#0000bb">$to </font><font color="#007700">- </font><font color="#0000bb">$from </font><font color="#007700">) <font color="#0000bb">$page </font><font color="#007700">&& ( </font><font color="#0000bb">$to </font><font color="#007700">- </font><font color="#0000bb">$from </font><font color="#007700">) <font color="#0000bb">$pages </font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$to </font><font color="#007700">= </font><font color="#0000bb">$page</font><font color="#007700">; <br> } <br> } <br> elseif ( </font><font color="#0000bb">$to </font><font color="#007700">> </font><font color="#0000bb">$pages </font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$from </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">- </font><font color="#0000bb">$pages </font><font color="#007700">+ </font><font color="#0000bb">$to</font><font color="#007700">; <br> </font><font color="#0000bb">$to </font><font color="#007700">= </font><font color="#0000bb">$pages</font><font color="#007700">; <br> if ( ( </font><font color="#0000bb">$to </font><font color="#007700">- </font><font color="#0000bb">$from </font><font color="#007700">) <font color="#0000bb">$page </font><font color="#007700">&& ( </font><font color="#0000bb">$to </font><font color="#007700">- </font><font color="#0000bb">$from</font><font color="#007700">) <font color="#0000bb">$pages </font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$from </font><font color="#007700">= </font><font color="#0000bb">$pages </font><font color="#007700">- </font><font color="#0000bb">$page </font><font color="#007700">+ </font><font color="#0000bb">1</font><font color="#007700">; <br> } <br> } <br> } <br> <br> if ( </font><font color="#0000bb">$frist </font><font color="#007700">&& ( </font><font color="#0000bb">$curr_page </font><font color="#007700">- </font><font color="#0000bb">1 </font><font color="#007700">) >= </font><font color="#0000bb">1 </font><font color="#007700">) </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#dd0000">'frist'</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#dd0000">'1">' </font><font color="#007700">. </font><font color="#0000bb">$frist </font><font color="#007700">. </font><font color="#dd0000">''</font><font color="#007700">; <br> if ( </font><font color="#0000bb">$prev </font><font color="#007700">&& ( </font><font color="#0000bb">$i </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">- </font><font color="#0000bb">1 </font><font color="#007700">) >= </font><font color="#0000bb">1 </font><font color="#007700">) </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#dd0000">'prev'</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">'">' </font><font color="#007700">. </font><font color="#0000bb">$prev </font><font color="#007700">. </font><font color="#dd0000">''</font><font color="#007700">; <br> for( </font><font color="#0000bb">$i </font><font color="#007700">= </font><font color="#0000bb">$from</font><font color="#007700">; </font><font color="#0000bb">$i </font><font color="#007700"><font color="#0000bb">$to</font><font color="#007700">; </font><font color="#0000bb">$i </font><font color="#007700">++ ) <br> { <br> if ( </font><font color="#0000bb">$i </font><font color="#007700">== </font><font color="#0000bb">$curr_page </font><font color="#007700">) <br> { <br> </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#0000bb">$i</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">'" class="nowpage" target="_self">[' </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">']'</font><font color="#007700">; <br> } <br> else <br> { <br> </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#0000bb">$i</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">'" target="_self">' </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">''</font><font color="#007700">; <br> } <br> } <br> if ( </font><font color="#0000bb">$next </font><font color="#007700">&& ( </font><font color="#0000bb">$i </font><font color="#007700">= </font><font color="#0000bb">$curr_page </font><font color="#007700">+ </font><font color="#0000bb">1 </font><font color="#007700">) <font color="#0000bb">$pages </font><font color="#007700">) </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#dd0000">'next'</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#0000bb">$i </font><font color="#007700">. </font><font color="#dd0000">'" target="_self">' </font><font color="#007700">. </font><font color="#0000bb">$next </font><font color="#007700">. </font><font color="#dd0000">''</font><font color="#007700">; <br> if ( </font><font color="#0000bb">$last </font><font color="#007700">&& ( </font><font color="#0000bb">$curr_page </font><font color="#007700">+ </font><font color="#0000bb">1 </font><font color="#007700">) <font color="#0000bb">$pages </font><font color="#007700">) </font><font color="#0000bb">$p</font><font color="#007700">[</font><font color="#dd0000">'last'</font><font color="#007700">] = </font><font color="#dd0000">'<a href="'%20</font><font%20color=">. </a></font><font color="#0000bb">$href </font><font color="#007700">. </font><font color="#0000bb">$pages </font><font color="#007700">. </font><font color="#dd0000">'" target="_self">' </font><font color="#007700">. </font><font color="#0000bb">$last </font><font color="#007700">. </font><font color="#dd0000">''</font><font color="#007700">; <br> <br> return </font><font color="#0000bb">implode</font><font color="#007700">( </font><font color="#0000bb">$space</font><font color="#007700">, </font><font color="#0000bb">$p </font><font color="#007700">); <br>} </font><font color="#ff8000">// end func<br></font><font color="#0000bb"></font> </font> </font></font></font></font></font></font></font></font></font></code><hr>로그인 후 복사
将上面的代码命名为"function.page.php"保存到Smarty的plugins目录里
<font size="2"><font face="verdana,arial,helvetica">代码:</font><hr></font> <title> New Document </title> <meta name="Generator" content="EditPlus"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> {page row=10} {page row=10 now=5} {page row=10 now=5 href="plugins.php?a=1&b=2&page=" frist="第一页" prev="上一页" next="下一页" last="最后页"} {page row=10 now=5 href="plugins.php?a=1&b=2&page=" frist="第一页" prev="上一页" next="下一页" last="最后页"} {page row=10 now=1 href="plugins.php?a=1&b=2&page=" frist="第一页" prev="上一页" next="下一页" last="最后页"} {page row=10 now=10 href="plugins.php?a=1&b=2&page=" frist="第一页" prev="上一页" next="下一页" last="最后页"} <hr>로그인 후 복사
将上面的代码命名为"plugins.html"保存到Smarty的template目录里
2、测试程序
<font size="2"><font face="verdana,arial,helvetica">PHP代码:</font><hr></font><code><font color="#000000"> <font color="#0000bb"><br>$Smarty</font><font color="#007700">-></font><font color="#0000bb">display</font><font color="#007700">( </font><font color="#dd0000">'plugins.html' </font><font color="#007700">);<br></font><font color="#0000bb"></font> </font> </code><hr>로그인 후 복사
3、使用说明
我懒得打了,对比一下"plugins.html"的5个{page}用法,以及看看显示出来的效果就明白是什么了
4、插件说明
“《Smarty手册》第十六章.以插件扩展Smarty ”的应用。像中文字符截取之类的都可以以plugins扩展Smarty,Smarty自带的截取不支持中文。
二、Smarty自动生成静态页面
如果你的文件扩展名为".html"~~~~~嘿嘿,这不就是静态页面了吗?-_-!
至于怎么取得静态的文件名呢?
<font size="2"><font face="verdana,arial,helvetica">PHP代码:</font><hr></font><code><font color="#000000"> <font color="#0000bb"><br></font><font color="#ff8000">/** <br> * <br> */ <br></font><font color="#007700">class </font><font color="#0000bb">template </font><font color="#007700">extends </font><font color="#0000bb">Smarty <br></font><font color="#007700">{ <br> <br> </font><font color="#ff8000">/** <br> * <br> */ <br> </font><font color="#007700">function </font><font color="#0000bb">template </font><font color="#007700">() <br> { <br> </font><font color="#0000bb">$this</font><font color="#007700">-></font><font color="#0000bb">Smarty</font><font color="#007700">(); <br> } </font><font color="#ff8000">// end func <br> <br> /** <br> * <br> */ <br> </font><font color="#007700">function </font><font color="#0000bb">name </font><font color="#007700">( </font><font color="#0000bb">$tpl_file</font><font color="#007700">, </font><font color="#0000bb">$cache_id </font><font color="#007700">= </font><font color="#0000bb">null</font><font color="#007700">, </font><font color="#0000bb">$compile_id </font><font color="#007700">= </font><font color="#0000bb">null </font><font color="#007700">) <br> { <br> <br> if (!isset(</font><font color="#0000bb">$compile_id</font><font color="#007700">)) </font><font color="#0000bb">$compile_id </font><font color="#007700">= </font><font color="#0000bb">$this</font><font color="#007700">-></font><font color="#0000bb">compile_id</font><font color="#007700">; <br> <br> </font><font color="#0000bb">$_auto_id </font><font color="#007700">= </font><font color="#0000bb">$this</font><font color="#007700">-></font><font color="#0000bb">_get_auto_id</font><font color="#007700">( </font><font color="#0000bb">$cache_id</font><font color="#007700">, </font><font color="#0000bb">$compile_id </font><font color="#007700">); <br> </font><font color="#0000bb">$_cache_file </font><font color="#007700">= </font><font color="#0000bb">$this</font><font color="#007700">-></font><font color="#0000bb">_get_auto_filename</font><font color="#007700">( </font><font color="#0000bb">$this</font><font color="#007700">-></font><font color="#0000bb">cache_dir</font><font color="#007700">, </font><font color="#0000bb">$tpl_file</font><font color="#007700">, </font><font color="#0000bb">$_auto_id </font><font color="#007700">); <br> <br> return </font><font color="#0000bb">basename</font><font color="#007700">( </font><font color="#0000bb">$_cache_file </font><font color="#007700">); <br> } </font><font color="#ff8000">// end func <br></font><font color="#007700">} </font><font color="#ff8000">// end class <br> <br></font><font color="#0000bb">$Smarty </font><font color="#007700">= new </font><font color="#0000bb">template</font><font color="#007700">; <br></font><font color="#0000bb">$file_name </font><font color="#007700">= </font><font color="#0000bb">$Smarty</font><font color="#007700">-></font><font color="#0000bb">name</font><font color="#007700">( </font><font color="#dd0000">'plugins.html'</font><font color="#007700">, </font><font color="#dd0000">'cache_name' </font><font color="#007700">);</font><font color="#ff8000">#html文件的名字(不包含路径) <br> <br></font><font color="#0000bb">$Smarty</font><font color="#007700">-></font><font color="#0000bb">cache_lifetime </font><font color="#007700">= -</font><font color="#0000bb">1</font><font color="#007700">;</font><font color="#ff8000">#静态文件永不过期 <br></font><font color="#0000bb">$Smarty</font><font color="#007700">-></font><font color="#0000bb">fetch</font><font color="#007700">( </font><font color="#dd0000">'plugins.html'</font><font color="#007700">, </font><font color="#dd0000">'cache_name' </font><font color="#007700">);</font><font color="#ff8000">#生成静态html文件<br></font><font color="#0000bb"></font> </font> </code><hr>로그인 후 복사
Smarty的功能很多很多(使用了半年,深有体会),还有待大家继续发掘。。。。

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

src와 href는 각각 1. src는 source의 약자로 외부 리소스의 경로를 지정하는 데 사용되며 일반적으로 사진, 오디오, 비디오 등 외부 파일을 삽입하는 데 사용됩니다. src 속성은 일반적으로 img, script, iframe 및 기타 태그에 사용됩니다. 2. href는 하이퍼링크의 대상 리소스 경로를 지정하는 데 사용되는 하이퍼텍스트 참조입니다. 일반적으로 외부 문서나 다른 페이지에 연결하는 데 사용됩니다. href 속성은 일반적으로 a 및 link와 같은 태그에 사용됩니다.

Vue 프로젝트에서 데이터 페이징 및 디스플레이 최적화 구현 Vue 프로젝트에서 페이지에 많은 양의 데이터를 표시해야 하는 경우 일반적으로 사용자 경험을 개선하기 위해 데이터 페이징 및 디스플레이 최적화를 수행해야 합니다. 데이터 페이징 및 디스플레이 최적화를 구현하고 구체적인 코드 예제를 제공합니다. 1. 데이터 페이징(Data paging) 데이터 페이징이란 대량의 데이터를 일정한 규칙에 따라 여러 페이지로 나누어 한 페이지에 표시하는 것을 말합니다. 다음 단계를 사용하여 Vue 프로젝트에서 데이터 페이징을 구현할 수 있습니다. 먼저 데이터 소스를 정의합니다.

href 및 src에서 보낸 요청을 받습니다. 자세한 설명: 1. href 속성은 링크의 대상 리소스를 지정하는 데 사용됩니다. 외부 스타일 시트를 참조할 때 CSS 파일을 얻기 위해 GET 요청을 보냅니다. 지정된 HTML 파일을 가져옵니다. 이미지를 참조할 때 GET 요청을 보냅니다. 2. src 속성은 이미지를 참조할 때 보냅니다. 지정된 이미지 파일을 얻기 위한 GET 요청 오디오를 참조할 때 지정된 오디오 파일 등을 얻기 위해 GET 요청을 보냅니다.

오늘날 웹사이트 개발은 중요한 구성 요소 템플릿 엔진과 분리될 수 없습니다. 템플릿 엔진은 페이지 템플릿과 데이터를 결합하여 특정 형식의 HTML 코드를 생성하는 도구를 말합니다. 다양한 웹사이트 개발 프레임워크에서 템플릿 엔진은 코드 중복을 크게 줄이고 페이지의 역동성을 향상시킬 수 있기 때문에 필수적인 구성 요소입니다. 가장 일반적이고 널리 사용되는 템플릿 엔진 중 하나는 Smarty입니다. Smarty는 DSL(DomainSpecif

안녕하세요, 다음은 FROM절에서 업데이트 대상 테이블을 지정할 수 없습니다'라는 제목의 1500자 이내의 기사입니다. - MySQL 오류 해결 방법: FROM 절에서 대상 테이블을 업데이트할 수 없습니다. 구체적인 코드 예제가 필요합니다. MySQL 데이터베이스를 개발하는 동안 때때로 다음과 같은 오류 메시지가 나타납니다. 지정할 수 없습니다.

현대 웹 개발에서는 프런트엔드와 백엔드의 분리가 매우 대중적인 추세가 되었으며, 이를 통해 개발자는 프로젝트를 더 잘 구성하고 프로젝트 개발 효율성을 향상시킬 수 있습니다. PHP와 Smarty는 프런트엔드와 백엔드 분리 개발을 달성하는 데 사용할 수 있는 매우 일반적으로 사용되는 두 가지 기술입니다. 이 기사에서는 PHP와 Smarty를 사용하여 프런트엔드와 백엔드 분리 개발을 수행하는 방법을 소개합니다. 프론트엔드와 백엔드 분리 개발이란 무엇입니까? 전통적인 웹 개발에서 프론트엔드는 주로 페이지 표시와 백엔드와의 상호 작용 논리를 담당합니다. 백엔드는 주로 비즈니스를 담당합니다.

src 속성과 href 속성은 HTML에서 일반적으로 사용되는 속성이며 외부 리소스를 로드하는 데 사용됩니다. 비슷한 목적을 가지고 있지만 용도와 목적에 따라 약간의 차이가 있습니다. src 속성: src 속성은 문서에 포함될 외부 리소스를 지정하는 데 사용됩니다. 주로 외부 스크립트 파일과 미디어 파일을 HTML 문서에 도입하는 데 사용됩니다. 다음 상황에서 사용할 수 있습니다. 외부 JavaScript 파일 도입: src 속성을 통해 외부 JavaScript 파일을 HTML 페이지에 연결합니다.

src와 href의 차이점은 무엇입니까? 빨리 알아보세요! 웹 개발 과정에서 src와 href는 일반적으로 사용되는 두 가지 속성입니다. 비슷해 보이지만 실제로는 용도와 적용 가능한 시나리오가 다릅니다. 이 글에서는 src와 href의 차이점을 알아보고 구체적인 코드 예제를 통해 설명하겠습니다. HTML에서 src는 포함되거나 참조될 외부 리소스를 지정하는 데 사용되는 속성입니다. 일반적으로 이미지, 오디오, 비디오 또는 스크립트 파일을 참조하는 데 사용됩니다. 이와 달리 href는 하이퍼링크입니다.
