Thinkphp에는 smarty에 필적하는 템플릿 엔진이 내장되어 있어 매우 편리합니다. 함수 호출도 마찬가지입니다. 스마트하게 필요한 함수를 호출할 수 있으며, 공식에서는 누구나 호출할 수 있도록 일반적으로 사용되는 몇 가지 함수를 내장했습니다.
예를 들어, 오늘 우리가 이야기하고 있는 가로채기 문자열 함수는 thinkphp 템플릿 엔진에서 다음과 같이 작성할 수 있습니다: {$vo.title|msubstr=0,5,'utf-8′,false} As for {$vo.title}모두가 이 사실을 잘 알고 있을 것입니다. 다음 함수 msubstr에 대해 이야기해 보겠습니다. 이것이 의미하는 바는 $vo.title 문자열을 가로채서 0자부터 시작하여 5자를 가로채는 것입니다. UTF-8 인코딩이 사용되며 기본적으로 차단 후 줄임표가 표시되지 않습니다. 줄임표를 표시하려면 false를 true로 변경하면 됩니다.
함수 설명:
msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)
$str: 가로채기 String
$start=0: 시작 위치, 기본값은 0부터 시작
$length: 가로채기 길이
$charset=”utf-8″: 문자 인코딩, 기본값 UTF-8
$suffix =true : 가로채는 문자 뒤에 타원을 표시할지 여부. 기본값은 표시하려면 true, 표시하지 않으려면 false
참고: 정상적으로 호출할 수 없는 경우 함수 라이브러리를 로드하지 않은 것입니다. . Load('extend');를 사용하여 함수를 로드할 수 있습니다. 액션에 넣으면 됩니다~!
참고: 함수 라이브러리를 확장하는 방법은 직접 사용할 수 없습니다. 사용하려면 먼저 프로젝트 함수 라이브러리에 로드하거나 복사해야 합니다.
확장 함수 라이브러리를 로드하려면 다음을 사용하세요.
Load('extend');
확장 함수 라이브러리를 로드한 후 그 안에 있는 모든 함수를 호출할 수 있습니다.
function index(){
Load('extend'); //여기 여기!
if($_POST['password']!=$_POST['repassword']){
$this->error('두 개의 비밀번호가 일치하지 않습니다.');
$user=D(' user');
if($vo=$user->create()){
...
}
시험 후: 공식 msubstr 함수는 어쨌든 추가된 것 같습니다. 줄임표 없이 , 공식 홈페이지 포럼에서 수정 방법을 찾았고, 테스트 후 정상적으로 사용 가능해요~! Commonextend.php 파일의 msubstr 함수를 다음 코드로 수정합니다:
Php 코드
/**
+-------------------------------------------- ----- ---------------
* 문자열 가로채기, 중국어 및 기타 인코딩 지원
+--------- ---- --------------------------------- -
* @static
* @access public
+------------------------- ----- ------------------
* @param string $str 문자열 변환
* @param string $start 시작 위치
* @param string $length 가로채기 길이
* @param string $charset 인코딩 형식
* @param string $ 접미사는 표시 문자를 자릅니다.
+-------------------------------- ------ -----
* @return 문자열
+--------- ---- --------------------------------- -
*/
function msubstr($ str , $start=0, $length, $charset="utf-8", $suffix=true)
{
if(function_exists("mb_substr")){
if($suffix)
return mb_substr($str, $start, $length, $charset)."..."
else
return mb_substr ($str, $start, $length, $charset);
} }
elseif(function_exists('iconv_substr')) {
if($suffix)
return iconv_substr($str,$start,$length,$charset)."..."
else
return iconv_substr($str,$start, $length ,$charset);
}
$re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[ xe0- xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";
$re['gb2312'] = "/[x01-x7f] |[ xb0-xf7][xa0-xfe]/";
$re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";
$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
if($suffix) return $slice."…";
$slice를 반환합니다.
}