>  기사  >  백엔드 개발  >  thinkPHP에 내장된 문자열 가로채기 기능에 대하여

thinkPHP에 내장된 문자열 가로채기 기능에 대하여

不言
不言원래의
2018-06-08 15:25:592219검색

이 글에서는 thinkPHP 내장 문자열 가로채기 기능의 사용법을 주로 소개하며, thinkPHP 내장 문자열 가로채기 기능의 기능과 구체적인 사용법을 예제 형식으로 분석하고, 생략 부호를 추가할 수 없는 경우의 소스 코드 수정 기술도 설명합니다. . 도움이 필요한 친구들이 참고할 수 있습니다

본 글의 예시는 thinkPHP에 내장된 문자열 가로채기 기능의 사용법을 설명한 것입니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

thinkphp에는 smarty와 비슷한 템플릿 엔진이 내장되어 있어 매우 편리합니다. 함수 호출도 마찬가지입니다. 스마트하게 필요한 함수를 호출할 수 있으며, 공식에서는 누구나 호출할 수 있도록 일반적으로 사용되는 몇 가지 함수를 내장했습니다.

예를 들어, 오늘 우리가 이야기하는 문자열 차단 기능은 thinkphp 템플릿 엔진에서 다음과 같이 작성할 수 있습니다: {$vo.title|msubstr=0,5,'utf-8′,false} .title} 여러분, 전혀 낯설지 않습니다. 다음 함수 msubstr에 대해 이야기해 보겠습니다. 이것이 의미하는 바는 $vo.title 문자열을 가로채서 0자부터 시작하여 5자를 가로채는 것입니다. UTF-8 인코딩이 사용되며 기본적으로 차단 후 줄임표가 표시되지 않습니다. 줄임표를 표시하려면 false를 true로 변경하면 됩니다.

함수 설명:

msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

매개변수 함수:

$str: 차단할 문자열
$start=0: 시작 위치, 기본적으로 0부터 시작
$length: 차단 길이
$charset="utf-8": 문자 인코딩, 기본값 UTF-8
$suffix=true: 가로채는 문자 뒤에 타원을 표시할지 여부, 표시하려면 기본값이 true이고 표시하지 않으려면 false

ps: 정상적으로 호출된다면 함수 라이브러리를 로드하지 않았다는 의미입니다. Load('extend');를 사용하여 함수를 로드하고 액션에 넣으면 됩니다~!

시도함: 공식 msubstr 함수는 어차피 타원을 추가할 수 없는 것 같습니다. 공식 홈페이지 포럼에서 수정 방법을 찾았는데, 테스트 후 정상적으로 사용 가능합니다~!

Commonextend.php 파일의 msubstr 함수를 다음 코드로 수정하세요.

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."…";
  return $slice;
}

위 내용은 모두의 학습에 도움이 되기를 바랍니다. , PHP 중국어 웹사이트를 주목해주세요!

관련 권장 사항:

ThinkPHP CURD 방식의 테이블 방식에 대하여

ThinkPHP에 내장된 ThinkAjax를 사용하여 비동기 전송 기술 구현

위 내용은 thinkPHP에 내장된 문자열 가로채기 기능에 대하여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.