문자열 가로채기는 매우 일반적인 프로그래밍 작업이며, 한자를 사용한 문자열 가로채기가 자주 사용됩니다. 어렵지는 않지만 함수를 직접 작성하는 데는 시간이 많이 걸립니다. 기본적인 요구 사항을 충족할 수 있는 비교적 사용하기 쉬운 문자열 가로채기 함수는 다음과 같습니다.
1. GB2312 중국어 문자열 가로채기
코드 복사 코드는 다음과 같습니다.
< >/ /중국어 문자열 차단
function mysubstr($str, $start, $len) {
$tmpstr = ""
$strlen = $start $len
for($i = 0 ; $i < $strlen; $i ) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i , 2);
$i
} else
$tmpstr .= substr($str, $i, 1)
return $tmpstr; > ?>
2. utf8로 인코딩된 멀티바이트 문자열을 가로채세요.
코드는 다음과 같습니다. < ?php //utf8 문자열 가로채기
function utf8Substr($str, $from, $len){
return preg_replace('#^( ?:[ x00-x7F]|[xC0-xFF][x80-xBF] ){0,'.$from.'}'
'((?:[x00-x7F]|[xC0-xFF] [x80- xBF] ){0,'.$len.'}).*#s',
'$1',$str)
}
?>
3. UTF-8, GB2312에서 지원하는 한자 차단 기능
코드 복사
< ?php /* Utf-8 및 gb2312에서 모두 지원되는 한자 차단 기능 cut_str(문자열, 차단 길이, 시작 길이, 인코딩)
인코딩은 기본적으로 utf-입니다. 8시작 길이 기본값은 0입니다.
*/
function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if( $code == 'UTF-8 ')
{
$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf] |[xe1-xef][x80 -xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][ x80-xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen) return Join('', array_slice ($t_string[0], $start, $sublen))."..."
return Join('', array_slice($t_string[0], $start, $sublen))
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string); ;
for($i =0; $i< $strlen; $i )
{
if($i>=$start && $i< ($start $sublen))
{
if(ord(substr ($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2)
}
else
{
$tmpstr.= substr($string, $i, 1);
}
}
if(ord(substr($string, $i, 1)) >129) $i;
}
if(strlen($tmpstr)< $strlen ) $tmpstr.= "..."
return $tmpstr; }
$str = " abcd가 가로채야 하는 문자열"
echo cut_str($str, 8, 0, 'gb2312')
4. BugFree의 문자 차단 기능
코드 복사
코드는 다음과 같습니다.
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ * * * 반환 문자열의 일부(substr() 함수 강화) *
* @author Chunsheng Wang* @param string $String 잘라낼 문자열입니다.
* @param int $Length 반환된 문자열의 길이입니다.
* @param booble $Append "..." 추가 여부: false|true
* @return string 잘라낸 문자열.
*/
함수 sysSubStr ($String,$Length,$Append = false)
{
if (strlen($String) < = $Length )
{
return $String
}
else
{
$I = 0
while ($I < $Length)
{
$StringTMP = substr($String) ,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3); I 3
}
elseif ( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2)
$I = $ I 2
}
else
{
$I = $I 1
}
$StringLast[] = $StringTMP; implode("",$StringLast);
if($Append)
{
$StringLast .= "..."
return $StringLast; 🎜>}
$String = "17test .info는 중국 자동화 테스트의 선두에 있습니다";
$Length = "18";
$Append =
echo sysSubStr($String; ,$길이,$추가)
?> ;
이상으로 문자열 가로채기 내용을 포함하여 PHP에서 중국어 문자열 가로채기 코드를 요약해서 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.