>  기사  >  백엔드 개발  >  개인 저장 Ryan Smarty 예제 튜토리얼

개인 저장 Ryan Smarty 예제 튜토리얼

WBOY
WBOY원래의
2016-07-29 08:35:02952검색

smarty 예제 튜토리얼(1)
1. smarty란?
smarty는 PHP로 작성된 템플릿 PHP 템플릿 엔진입니다. 간단히 말해서 PHP 프로그래머를 사용하는 것이 목적입니다. 아티스트와는 별개로, 프로그래머가 프로그램의 로직 내용을 변경해도 아티스트의 페이지 디자인에는 영향을 미치지 않으며, 아티스트가 페이지를 다시 수정해도 프로그램의 프로그램 로직에는 영향을 미치지 않습니다. 이는 멀티에서 특히 중요합니다. -사람 협력 프로젝트
중간 부분이 특히 중요합니다.
2. smarty의 장점:
1. 속도: smarty를 사용하여 작성된 프로그램은 다른 템플릿 엔진 기술에 비해 최대 속도 향상을 달성할 수 있습니다.
2. 컴파일된 유형: smarty로 작성된 프로그램은 런타임 시 템플릿이 아닌 기술인 PHP 파일로 컴파일되어야 합니다. 이 파일은 다음에 템플릿에 액세스할 때 PHP와 HTML을 혼합하여 사용합니다. 🎜> 템플릿 재컴파일 없이 바로 이 파일로 변환 (소스 프로그램이 변경되지 않은 경우)
3. 캐싱 기술 : 사용자가 최종적으로 보는 HTML 파일을 Cache로 변환할 수 있는 smarty가 선택한 캐싱 기술 static HTML 페이지. smarty의 캐시 속성을
true로 설정하면 smarty가 설정한 캐시 시간 내에 사용자의 WEB 요청이 이 정적 HTML 파일로 직접 변환됩니다. 이는 정적 HTML 파일을 호출하는 것과 같습니다.
4. 스마트하게 플러그인을 맞춤 설정할 수 있습니다. 플러그인은 실제로 일부 사용자 정의 기능입니다.
5. If/elseif/else/endif를 템플릿에서 사용할 수 있습니다. 템플릿 파일의 판단문을 사용하면 템플릿의 형식을 매우 편리하게 다시 지정할 수 있습니다.
3. 스마티가 적합하지 않은 곳:
1. 실시간 업데이트가 필요한 컨텐츠. 예를 들어, 데이터를 자주 업데이트해야 하는 주식 표시와 같이 이러한 유형의 프로그램에 smarty를 사용하면 템플릿 처리 속도가 느려집니다.
2. 소규모 프로젝트. 프로젝트가 단순하기 때문에 아티스트와 프로그래머가 모두 참여하는 소규모 프로젝트의 경우 smarty를 사용하면 신속한 PHP 개발의 이점을 잃게 됩니다.
4. smarty 클래스 설치:
smarty 설치 환경: PHP 버전 4.06 이상.
smarty 설치 방법은 매우 간단합니다. http://samrty.php.net에서 smarty.t를 다운로드하세요. LIB
에 있는 모든 파일을 comm 디렉터리에 복사하여 기본 설치를 완료하세요. > 기타 고급 설치 사용 방법은 매뉴얼을 참조하세요.
5. 템플릿에서의 smarty 사용:
이 섹션에서는 몇 가지 예를 통해 smarty 사용에 대해 설명합니다. Smarty 템플릿은 일반적으로 .tpl로 식별됩니다. 아트의 편의를 위해 어떤 사람들은 확장자를 .html로 직접 작성하는데, 이것도 괜찮습니다
. 이 글은 스마트 표준 작성 방법을 채택합니다: 스마트 템플릿으로 .tpl로 표현됩니다.
PHP 코드:------------------------------- ------ -----------------------
예시 1:
먼저 간단한 예제를 살펴보겠습니다.
============================================== ======
index.tpl
================================== ==================
{* 댓글 내용으로 smarty 변수 식별자에 *가 포함된 텍스트가 표시됩니다 *}
{include file="header .tpl"}{*페이지 헤더*}
안녕하세요 여러분. 제 이름은 {$name}입니다. 저의 스마트한 학습 자료를 언제든지 읽어보실 수 있습니다.
{include file="foot.tpl"}{*페이지 끝*}
위의 예는 tpl 템플릿입니다.
1. {**}는 템플릿 페이지의 주석입니다. Smarty에 있는 것은 템플릿을 구문 분석할 때 어떤 출력도 생성하지 않습니다. 템플릿 디자이너가 템플릿에 주석을 달기 위해서만 사용됩니다.
2. {include file="xxx.tpl"}현재 페이지에 템플릿 파일을 포함하려면 이 문장을 사용하세요. 예에서는 웹사이트에서 일반적으로 사용되는 head.tpl 및 foot.tpl이 포함되어 있습니다. can
이렇게 생각해보세요. 이 문장을 사용하여 xxx.tpl의 모든 내용을 현재 명령문에 복사하세요. 물론 꼭 이 문장을 사용할 필요는 없습니다. XXX.tpl의 내용을 현재 문장
에 복사해도 괜찮습니다.
3.{$name}: smarty의 핵심 구성 요소인 템플릿 변수는 smarty에서 정의한 왼쪽 경계 문자{및 오른쪽 경계 문자}에 포함되어 있으며 PHP 변수 형태로 사용됩니다. smarty 프로그램
$smarty->sign("name", "Li Xiaojun")에서 템플릿의 $name을 "Li Xiaojun"이라는 세 단어로 바꿉니다.
전체 예제 소스 프로그램은 다음과 같습니다
================================
header.tpl
==========================

🎜> 빅 브라더 스마트 튜토리얼

============== ====== ========
foot.tpl
========================== =====
                                                      
================================== ========== =======
index.tpl
======================== ========== ===================
{* 표시는 댓글 내용으로 smarty 변수 식별자에 *가 포함된 텍스트입니다. *}
{include file=" header.tpl"}{*page header*}
안녕하세요 여러분. 제 이름은 {$name}입니다. 저의 스마트한 학습 자료를 언제든지 읽어보실 수 있습니다.
{include file="foot.tpl"}{*페이지 끝*}
=========================== = ====================
index.php
==================== = ===========================
include_once("./comm/Smarty.class.php " ; 🎜> $smarty->templates_c("./templates_c"); //컴파일 디렉터리 설정
//---------------------- --- ---------------
//왼쪽 및 오른쪽 경계 문자, 기본값은 {}이지만 실제 애플리케이션에서는 Javascript
//Con conflict를 사용하기 쉽기 때문에 <{}> 등으로 설정하는 것이 좋습니다.
//----------------------------------------------- --- -------
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}"
$smarty->할당("이름 ", " Li Xiaojun"); //템플릿 변수 교체
//./templates
에 있는 index.tpl 템플릿을 컴파일하고 표시합니다. $smarty->display("index.tpl");
?> ;
이 프로그램이 최종적으로 실행되면 다음과 같이 표시됩니다.
========================= =====
index.php 실행
==================================


; 빅 브라더 스마트 튜토리얼

                                                          /html>
smarty 인스턴스 튜토리얼(2)
이 예는 smarty 템플릿 매개 변수를 포괄적으로 사용하는 예입니다. 템플릿의 출력 중 일부만 선택했습니다. . 참조 바에 대한 다른 매개변수를 읽을 수 있습니다.
============================================== =
exmple2.tpl
======================================= ========
                                                            1. 첫 번째 문장의 첫 글자는 대문자로 표기해야 합니다: {$str1|capitalize}
. 두 번째 문장 Li Xiaojun의 템플릿 변수: { $str2|cat:"이소준"}

3 . 세 번째 문장은 현재 날짜를 출력합니다: {$str3|date_format:"%Y year %m Month %d day"}
  4 . 네 번째 문장입니다. PHP 프로그램은 이를 처리하지 않고 기본값을 표시합니다: {$str4| default: "No value!"}
5. 다섯 번째 문장은 8개의 공백 문자로 들여쓰기되어야 하며 "*"를 사용하여 다음 8개의 공백 문자를 대체해야 합니다.
{$str5|indent:8:"*"}}
. 여섯 번째 문장에서 TEACHerLI@163.com을 모두 소문자로 변경합니다. {$str6|lower}

7. 일곱 번째 문장에서 변수의 Teacherli를 다음으로 바꿉니다. Li Xiaojun: {$ str7| replacement:"teacherli":"lee晓君"}

8. 여덟 번째 문장은 변수 수식어의 조합입니다: {$str8|capitalize|cat:"새로 추가된 시간은 다음과 같습니다:"|date_format :" %Y년 %m월 %d일"|하위}


  =============== == =============================
example2.php
========== == ===================================
include_once(" ./ Smarty.class.php"); //smarty 클래스 파일 포함
$smarty = new Smarty(); //smarty 인스턴스 객체 생성 $smarty
$smarty->templates("./templates" ; - ----------------------
//왼쪽 및 오른쪽 경계 문자, 기본값은 { }, 그러나 실제 애플리케이션에서는 Javascript
//와 충돌하기 쉽기 때문에 <{}> 등으로 설정하는 것이 좋습니다.
//----------------------------------------------- --- -------
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}"
$smarty->할당("str1 ", " 내 이름은 xiao jun, li입니다."); //str1을 My Name Is Xiao Jun, Li로 바꿉니다.
$smarty->ass("str2", "내 이름은:"); / / 출력: 내 이름은: Li Xiaojun
$smarty->ass("str3", "AD") //출력 2004년 8월 21일(내 현재 시간)
//$smarty -> ;할당("str4", ""); //네 번째 문장이 처리되지 않으면 기본값이 표시됩니다. 이전 문장을 사용하는 경우 ""
$smarty->할당(" str5", "첫 번째 8*"); //다섯 번째 문장 출력: ********처음 8*
$smarty->ass("str6", "TEACHerLI@163.com "); //Teacherli@163.com이 여기에 출력됩니다.
$smarty->assault("str7", "this is Teacherli"); //템플릿에 다음과 같이 표시됩니다: Li Xiaojun입니다
$smarty-> 할당("str8", "여기 결합:");
//./templates
에 있는 index.tpl 템플릿을 컴파일하고 표시합니다. $smarty->display("example2. tpl");
?>
최종 출력 효과:
============================== ====== ===================
example2.php 출력 효과:
============= ====== ==================================
  < ;title>빅 브라더 스마트티 예시 2
                                                                                                      🎜> 2. 두 번째 문장 템플릿 변수 Li Xiaojun: 내 이름은: Li Xiaojun
3. 세 번째 문장은 현재 날짜를 출력합니다: 2004년 8월 21일

4. 네 문장은 PHP 프로그램에서 처리되지 않으며 기본값인 no value를 표시합니다.

5. 다섯 번째 문장은 8개의 공백 문자로 들여쓰기되어야 하며 이 8개의 공백 문자를 "*"로 바꿔야 합니다.

6. 여섯 번째 문장에서 TEACHerLI@163.com을 모두 소문자로 변경합니다(teacherli@163). com

7. 일곱 번째 문장에서 변수의 Teacherli를 다음과 같이 바꿉니다. Li Xiaojun: this is lee晓君< br>
8. 여덟 번째 문장은 변수 수정자의 조합입니다. 새로 추가된 시간은 다음과 같습니다. 2004년 8월 21일

템플릿의 이러한 매개변수를 변수 수정자라고 합니다. 템플릿 수정. 변수 수정자
수정자를 적용하려면 "|"와 수정자 이름을 사용하고, 수정자 매개변수를 구분하려면 ":"을 사용하세요. 변수 수식어는 여덟 번째 문장처럼 조합하여 사용할 수 있으며, 실제 사용에서도 유연하게 적용할 수 있습니다.
예시 3.
======================================== == =========
example3.tpl
============================= == ================

템플릿의 일부 기본 기능< / head>
                   < UserName = admin
다음 줄에는 3개의 체크박스가 표시됩니다.
{html_checkboxes name="CheckBox" value=$CheckName check=$IsChecked 출력=$ value 구분 기호="
"}
아래 줄에 3개의 라디오가 표시됩니다.

value 구분 기호="
" }
                                                                                                   ~ >
= ============================================= ==== ===
example3.php
================================= ==== ===============
require_once ("./comm/Smarty.class.php")
$smarty = new F117_Smarty;
$smarty->template_dir = './templates/';
$smarty->compile_dir = './templates_c/'
$smarty->config_dir = '. /configs/' ;
$smarty->cache_dir = './cache/'
$smarty->caching = false
//--------- -- ------------------------------------------------ -- --------
//{html_checkboxes name="CheckBox" 값 처리 중=$CheckName selected=$IsChecked 출력=$value 구분 기호= "< ;br />"}
//-------------------------------------- ----- -------------------
$smarty->asse('CheckName', array(
1001 => '중국어',
1002 => '수학', > ​​              1003 => '외국어') );
$smarty->할당('IsChecked', 1001)
//------------ --- ---------------------------------- --- -------
//{html_radioes name="RadioBox" 값 처리=$RadioName selected=$IsChecked 출력=$value 구분 기호="
"}
//----------------------------------------------- --- --------------
$smarty-> ;할당('라디오 이름', array (
1001 = & gt; '중국어',
1002 = & gt; '수학',
1003 = & gt; '외국어')); > $ Smarty- & GT; 할당('IsChecked', 1001)
//--------------- ------ ------------------ ------
//{html_select_date}는 처리하지 않고 자동으로 출력됩니다.
//------------ ------- ----------------- ------- ----
$smarty->display("example3.tpl")
?> 똑똑한 예제 튜토리얼 (3)
=========== ============================== ==============
example3.php 출력 효과:
========================= =============================

                                                                      <
{할당 var= "UserName" value="선배"} 
        这里将显示模板内部定义的一个变量:UserName = 大师兄
        下面的这一行将显示3个checkBox:

        语文

        数学

        外语

        下面在这一行将显示3个radio:

        语文

        数学

        外语

        下面显示一个月,日, 年选择框:

        
      
    <이름="날짜_연도" 선택>
      2004
    
     


CopyRight(C) 작성자: XiaoJun, Li 2004ÁªÏμ׶Õß
  
 
 3개의 예시는 smarty板中内置的一些函数, 似的函数大家可以手册中查到, 使用方法很简单, 大家可以自己去查找입니다.
 例4.模板控조제(if / elseif / else/ endif )
 ============================= =========================
 example4.tpl
 ================= =======================================
 
   模板中的流程控 조절
   <본문>
      
        {할당 var="tbColor" value="#D4D0C8"}
    color彩:{$tbColor}

    {section name=loop loop=$News}
    {if $tbColor == "#D4D0C8"}
        
        {할당 var="tbColor" value="#EEEEEE"}
      {else $tbColor == "#EEEEEE"}
        
         {할당 var="tbColor" value="#D4D0C8"}
       {/if}
       {$News[loop].newsID}
      {$News[loop].newsTitle}
       
    {/section}



============= = ================================
example4.php
======== = =============================================
< ;?php
require_once ("./public/inc/F117_Smarty.php")
$smarty = new F117_Smarty;
$smarty->template_dir = './templates/'; > $smarty->compile_dir = './templates_c/';
$smarty->config_dir = './configs/'
$smarty->cache_dir = './cache/'; 🎜 > $smarty->caching = false;
$array[]= array("newsID"=>"001", "newsTitle"=>"뉴스 1")
$array[ ] = array("newsID"=>"002", "newsTitle"=>"뉴스 2번")
$array[]= array("newsID"=>"003", "newsTitle " =>"뉴스 3번")
$array[]= array("newsID"=>"004", "newsTitle"=>"뉴스 4번")
$ array []= array("newsID"=>"005", "newsTitle"=>"뉴스 5번")
$array[]= array("newsID"=>"006", " newsTitle"=>"뉴스 6번");
$array[]= array("newsID"=>"007", "newsTitle"=>"뉴스 7번");
$array[]= array("newsID"=>"008", "newsTitle"=>"뉴스 8번")
$smarty->할당("뉴스", $array)
$smarty->display("example4.tpl");
?>
스마트 예제 튜토리얼(4)
=============== ===================================
example4.php 출력:
==== ==============================================
< ;html>
템플릿의 흐름 제어


                                                         < ;/tr>
                                                                            
                                                                  
                                                                         >                
     

="tbColor" value="#EEEEEE"}
{else $tbColor == "#EEEEEE"}
" value="#D4D0C8"}
{/if}
이 문 블록은 각 행의 배경색을 설정합니다. {할당 var="tbColor" value="#D4D0C8"} 기억하세요. 이것이 정의 방법입니다.
템플릿에 내장된 프로세스 제어문을 사용하면 프로그램의 제어 능력이 크게 향상될 수 있습니다. 다음 예는 phpx.com에 있는 친구가 요청한 것입니다.

예 5: 템플릿에 내장된 프로세스 제어 문을 사용하여 여러 셀의 내용을 한 행에 출력합니다. 즉, 시각적으로 스마트하게 레코드당 여러 레코드를 출력합니다.
============================================= = =
example5.tpl
======================================= == ========

한 줄에 여러 레코드 출력 ; & Lt; 테이블 & gt;
& lt; tr & gt;
{섹션 이름 = loOP loOP = $ 뉴스 단계 = 1}
{if $Smarty.load.index%4 == 0}                                                                          🎜>                                            뉴스[loop].newsTitle}

        
      
뉴스 7호

& td & gt;
& lt; td & gt; 첫 번째 뉴스 & lt;/td & gt;
& lt;/troc & lt;
& lt;/b;/b ODY & GT; >
템플릿 파일에 사용됨:
{if $tbColor == "#D4D0C8"}

    
  
  ====================================================
  example5.php
  ====================================================
require_once ("./public/inc/F117_Smarty.php");
$smarty = new F117_Smarty;
$smarty->template_dir = './templates/';
  $smarty->compile_dir  = './templates_c/';
  $smarty->config_dir   = './configs/';
  $smarty->cache_dir    = './cache/';
  $smarty->caching      = false;
 $array[]= array("newsID"=>"001", "newsTitle"=>"第1条新闻"); 
 $array[]= array("newsID"=>"002", "newsTitle"=>"第2条新闻");
 $array[]= array("newsID"=>"003", "newsTitle"=>"第3条新闻");
 $array[]= array("newsID"=>"004", "newsTitle"=>"第4条新闻");
 $array[]= array("newsID"=>"005", "newsTitle"=>"第5条新闻");
 $array[]= array("newsID"=>"006", "newsTitle"=>"第6条新闻");
 $array[]= array("newsID"=>"007", "newsTitle"=>"第7条新闻");
 $array[]= array("newsID"=>"008", "newsTitle"=>"第8条新闻");
 $smarty->assign("News", $array);
 $smarty->display("example5.tpl");
 ?>
 ==================================================
 example5.php输出内容:
 ==================================================
   
    一行输出多条记录
    
       
    
                              
               
                   
       
                   
       
                   
       
                   
       
                              
               
                   
       
                   
       
                   
       
                   

                                   설명: 첫 번째 줄에서 빈 줄이 출력되지 않도록 최적화할 수 있었지만 간단하게 하는 것이 더 좋으므로 일단은 이렇게 설명하겠습니다.
{section name =loop loop=$News step=1}                                                       > > > {section}{/section}은 루프 섹션을 의미하며 다음 섹션에서 자세히 소개하겠습니다.
{if $smarty.section.loop.index % 4 = = 0 }
$smarty.section.loop는 $smarty 인스턴스의 섹션 섹션에 loop라는 부분이 있다는 점을 지적합니다. 이 부분에는 현재 루프의 인덱스 값을 나타내는 index라는 속성이 있습니다.
0 증가시키면 %4와 비교한 후 0과 비교합니다. 즉, 현재 인덱스 값이 4의 배수이면을 출력하고, 그렇지 않으면 다음 부분이 실행됩니다. ,
프로그래밍 방식으로 구현하기 매우 어려운 문제를 매우 간단하게 해결합니다.

위 내용은 개인 라이언 저장 내용을 포함하여 개인 라이언 저장 스마트티 예제 튜토리얼을 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
001 第1条新闻 002 第2条新闻 003 第3条新闻 004 第4条新闻
005 第5条新闻 006 第6条新闻 007 第7条新闻 008 뉴스 8