개발 꿀팁/PHP

thinkphp5에서 문자열을 가로채는 방법에는 어떤 것들이 있나요?(두 가지 방법으로 실현)

Jammie 2022. 7. 25. 14:04
반응형

이 글은 씽크피프5에서 문자열을 캡처하는 두 가지 방법(코드)에 대한 소개로 참고가 되므로 도움이 되시기를 바랍니다.
공통의 comon.php에서

방법 1

//문자열 캡쳐

function cut_str($sourcestr,$cutlength)  

{  

   $returnstr='';  

   $i=0;  

   $n=0;  

   $str_length=strlen($sourcestr);//문자열의 바이트 수  

   while (($n<$cutlength) and ($i<=$str_length))  

   {  

      $temp_str=substr($sourcestr,$i,1);  

      $ascnum=Ord($temp_str);//문자열의 $i비트 문자에 대한 ascii 코드를 가져옵니다 

      if ($ascnum>=224)    //ASCII가 224위보다 높으면,  

      {  

    $returnstr=$returnstr.substr($sourcestr,$i,3); //UTF-8 부호화 규격에 따라 3개의 연속된 문자를 단일 문자로 계상한다          

         $i=$i+3;            //실제 Byte는 3입니다

         $n++;            //문자열 길이계 1  

      }  

      elseif ($ascnum>=192) //ASCII가 192보다 높으면,  

      {  

         $returnstr=$returnstr.substr($sourcestr,$i,2); //UTF-8 부호화 규격에 따라 두 개의 연속된 문자를 단일 문자로 계상한다

         $i=$i+2;            //실제 Byte는 2입니다

         $n++;            //문자열 길이계 1

      }  

      elseif ($ascnum>=65 && $ascnum<=90) //이니셜이면,  

      {  

         $returnstr=$returnstr.substr($sourcestr,$i,1);  

         $i=$i+1;            //실제 바이트 수는 여전히 1개이다

         $n++;            //그러나 전체적인 미관을 고려하여 대문자는 하나의 높은 자로 하였다  

      }  

      else                //기타 경우 소문자와 반각 구두점을 포함한다,  

      {  

         $returnstr=$returnstr.substr($sourcestr,$i,1);  

         $i=$i+1;            //실제 바이트 수는 1개  

         $n=$n+0.5;        //소문자와 반각 구두점 등 상위 반 글자 너비...  

      }  

   }  

         if ($str_length>$i){  

          $returnstr = $returnstr . "...";//길이 초과 시 끝에 줄임표 붙임 

      }  

    return $returnstr;  

}

방법2:

//문자열이 생략 부호 이상으로 잘라내기

function subtext($text, $length)

{

if(mb_strlen($text, ‘utf8’) > $length)

return mb_substr($text,0,$length,’utf8′).’ …’;

return $text;

}

템플릿에서 호출하는 방법:

{$tops.title | subtext=18}
반응형