PHP 문자열 가로채기 커스텀 함수는 우리가 개발 과정에서 자주 사용하는 함수입니다. 일반적으로 PHP에 내장된 함수를 사용할 수 있지만, 특별히 사용하기가 쉽지 않고, 특히 중국어에 대한 지원이 그다지 친절하지 않습니다. 우리는 단지 하나를 직접 사용자 정의합니다.
//$Str为截取字符串,$Length为需要截取的长度 function cut($Str, $Length,$more=true) { 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 . '...'; break; //如果进行了截取,字符串末尾加省略符号“...” } } return $s; }
호출 방법은 매우 간단합니다. 일반 PHP 파일에서 직접 메서드 이름을 호출하면 됩니다.
cut();
그러나 매개변수는 일반적으로 첫 번째와 첫 번째로 전달되어야 합니다. 두 번째 2개는 필수이고 세 번째는 선택 사항입니다.
예를 들어 문자열의 처음 10자를 가로채려면 다음과 같이 호출합니다.
cut($str,10);
여기서 $str은 가로채는 문자열, 10은 길이입니다.
기본적으로 차단 전 길이가 차단 후 길이를 초과하면 초과 함수는 기본적으로 '...'를 사용하여 다음 문자열을 대체합니다.
초과 부분을 숨겨서 '...'으로 바꾸는 것을 원하지 않으면
cut($str,10,false);