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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.