PHP 템 플 릿 엔진 Smarty 사용자 정의 변수 조정기 사용법

이 사례 는 PHP 템 플 릿 엔진 Smarty 사용자 정의 변수 조정기 사용법 을 설명 합 니 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
PHP 에 서 는 텍스트 를 처리 하 는 함수 가 많 습 니 다.처리 할 텍스트 를 함수 로 처리 한 다음 Smarty 템 플 릿 엔진 의 assign()할당 변 수 를 호출 하여 템 플 릿 에 할당 하여 표시 할 수 있 습 니 다.
Smarty 의 변수 조정 기 는 PHP 에서 텍스트 를 처리 하 는 함수 와 비슷 하지만 문법 은 다 릅 니 다.Smarty 에 서 는'|'을 통 해 바로 조정기 함수 이름과 같 습 니 다.만약 에 매개 변수 가 있 으 면':'뒤에 여러 개의 매개 변 수 를 추가 하면 누적 하면 됩 니 다.
형식:{$var|modifier 1:"매개 변수 1":"매개 변수 2":매개 변수 3|modifier 2|modifier 3|...}
조정 기 를 정의 하 는 파일 은 Smarty 에 두 어야 합 니 다.구체 적 인 경 로 는 libs/plugins/입 니 다.파일 이름 은 Smarty 형식 modifier.조정기 이름.php 에 따라 야 합 니 다.
Smarty 에서 변수 조정 기 를 사용자 정의 하 는 인 스 턴 스 를 통 해 보 여 줍 니 다.
프로그램 사고방식:두 개의 변수 조정 기 를 만 듭 니 다.기능 은 텍스트 변환 입 니 다.텍스트 캡 처
init.inc.php(Smarty 파일 초기 화)

<?php
  define('ROOT_PATH', dirname(__FILE__)); //       
  require ROOT_PATH.'/libs/Smarty.class.php'; //   Smarty     
  $_tpl = new Smarty(); //        
  $_tpl->template_dir = ROOT_PATH.'/tpl/'; //        
  $_tpl->compile_dir = ROOT_PATH.'./com/'; //        
  $_tpl->left_delimiter = '<{'; //      
  $_tpl->right_delimiter = '}>'; //      
?>

index.php(주 파일)

<?php
  define('CONST_VAR', 'ABC');
  require 'init.inc.php'; //         
  global $_tpl;
  $_str = 'abcdEFGHigklmnOPQRSTuvwsYz'; //       
  $_tpl->assign('str',$_str); //      str
  $_tpl->assign('str1',strtolower($_str)); //            str1
  $_tpl->assign('str2',strtoupper($_str)); //            str2
  $_tpl->assign('str3',ucfirst($_str)); //             str3
  $_tpl->assign('str4',substr($_str, 0,15).'...'); //      15   ,    '...'  ,   str4
  $_tpl->assign('str5',strtoupper(substr($_str, 0,15)).'...'); //      15        ,    '...'  ,   str4
  $_tpl->display('index.tpl'); //    
?>

tpl/index.tpl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Smarty        </title>
</head>
<body>
  <{$str}><br />   <!--         -->
  <{$str1}><br />  <!--           -->
  <{$str2}><br />  <!--            -->
  <{$str3}><br />  <!--            -->
  <{$str4}><br />  <!--      ,  15    ,    '...'   -->
  <{$str5}><br />  <!--      ,  15    ,     ,    '...'   -->
  <!--
        ,         ,         ,
             ,                ,          。
           ,         
   -->
  <{$str|transform}><br />      <!--        -->
  <{$str|transform:"lower"}><br />  <!--           -->
  <{$str|transform:"upper"}><br />  <!--            -->
  <{$str|transform:"firstdx"}><br /> <!--            -->
  <{$str|subString:0:15:"###"}><br /> <!--      ,  15    ,    '###'   -->
  <{$str|subString:0:15:"@@@"|transform:"upper"}><br />  <!--      ,  15    ,    '@@@'   -->
  <{$str|transform:"upper"|subString:0:15:"@@@"}><br />  <!--      -->
</body>
</html>

/libs/plugins/modifier.transform.php(변환 파일 조정기)

<?php
  /**
   * smarty_modifier_transform
   *              
   * @param string $string      
   * @param string $type      
   */
  function smarty_modifier_transform($string,$type) {
    switch ($type) {
      case 'upper' :
        $str = strtoupper($string);
        break;
      case 'lower' :
        $str = strtolower($string);
        break;
      case 'firstdx' :
        $str = ucfirst($string);
        break;
      default:
        $str = $string;
    }
    return $str;
  }
?>

lib/plugins/modifier.subString.php(텍스트 조정 기 캡 처)

<?php
  /**
   * smarty_modifier_subString
   *           
   * @param string $string       
   * @param int $start_num      ,      
   * @param int $end_num       ,  20
   * @param string $addTo        ,  '...'
   */
  function smarty_modifier_subString($string,$start_num=0,$end_num=20,$addTo='...') {
    $_str = '';
    if (strlen(substr($string, $start_num, $end_num))>=$end_num) {
      $_str = substr($string, $start_num, $end_num).$addTo;
    } else {
      $_str = substr($string, $start_num, $end_num);
    }
    return $_str;
  }
?>

실행 결과:

위의 인 스 턴 스 를 통 해 조정기 파일 은 Smarty 플러그 인 디 렉 터 리 plugins 에 두 어야 하 며,이름 은 Smarty 의 규칙 에 따라 야 작성 한 조정기 함수 로 호출 할 수 있 습 니 다.또 한 가지 설명 이 필요 합 니 다.정 의 된 함수 이름 도 Smarty 내 정 된 명명 규칙 에 부합 해 야 합 니 다.예 를 들 어 smartymodifier_XXX,그리고 하나의 조정기 파일 은 하나의 함수 만 넣 을 수 있 고 여러 개 를 놓 을 수 없습니다.
자,사용자 정의 조정 기 를 먼저 소개 합 니 다.Smarty 에는 이미 작 성 된 조정기 함수 가 많 습 니 다.직접 호출 하거나 원 하 는 스타일 로 수정 할 수 있 습 니 다.스 매 리 에 내 장 된 조정기 에 대해 서 는 후속 장절 에 대한 상세 한 설명 이 있 을 것 이다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
이 글 은 스마트 템 플 릿 을 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기