>  기사  >  백엔드 개발  >  PHP 문자열 가로채기 길이 맞춤 방법

PHP 문자열 가로채기 길이 맞춤 방법

高洛峰
高洛峰원래의
2016-10-21 10:27:201014검색

PHP 사용자 정의 함수를 사용하여 가로채고 싶은 문자 길이를 가로채고, 줄임표를 사용하여 남는 부분을 바꾸거나 숨기는 방법을 소개하겠습니다.


문자열 차단 방법:

//截取字符串长度
function cut($Str, $Length,$more=true) {
    //$Str为截取字符串,$Length为需要截取的长度
    global $s;
    $i = 0;
    $l = 0;
    $ll = strlen($Str);
    $s = $Str;
    $f = true;
    while ($i <= $ll) {
        if (ord($Str{$i}) < 0x80) {
            $l++; $i++;
        } else if (ord($Str{$i}) < 0xe0) {
            $l++; $i += 2;
        } else if (ord($Str{$i}) < 0xf0) {
            $l += 2; $i += 3;
        } else if (ord($Str{$i}) < 0xf8) {
            $l += 1; $i += 4;
        } else if (ord($Str{$i}) < 0xfc) {
            $l += 1; $i += 5;
        } else if (ord($Str{$i}) < 0xfe) {
            $l += 1; $i += 6;
        }
         
        if (($l >= $Length - 1) && $f) {
            $s = substr($Str, 0, $i);
            $f = false;
        }
         
        if (($l > $Length) && ($i < $ll) && $more) {
            $s = $s . &#39;...&#39;; 
            break; 
            //如果进行了截取,字符串末尾加省略符号“...”
        }
    }
    return $s;
}

사용 방법:

$str = &#39;看看截取到哪里?&#39;;
echo cut($str,1);
echo &#39;<br>&#39;;
echo cut($str,4);
echo &#39;<br>&#39;;
echo cut($str,5);
echo &#39;<br>&#39;;
echo cut($str,5,false);
echo &#39;<br>&#39;;
 
$str = &#39;中英文混合看看hello?&#39;;
echo cut($str,18);
echo &#39;<br>&#39;;
echo cut($str,50);

출력:

看...
看看...
看看...
看看
中英文混合看看hel...
中英文混合看看hello?

설명: 일반적으로 UTF-8 형식은 3바이트인 반면, GBK 호환 gb2312는 일반적으로 2바이트입니다. 위에서는 UTF-8 인코딩을 예로 사용합니다.

줄임표 모드는 세 번째 매개변수인 $more를 통해 켜거나 끌 수 있습니다. 기본값은 줄임표가 있는 경우 true이고, 줄임표가 없는 경우 false입니다.


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