コードをコピー コードは次のとおりです:
//文字列の長さをインターセプトします。 utf-8 および gb2312 エンコードをサポートします。 gb2312 の場合は、まず utf-8 に変換し、utf-8 に基づいてインターセプトしてから、元に変換します。
function Cut_string($str,$from=1,$length=10,$code='utf- 8',$rear='...'){
if($code!='utf-8'){//文字列を常に utf-8 エンコーディングに変換します
$str=iconv( $code ,'utf-8',$str);
}
$str_len=mb_strlen($str,'utf-8');//文字列の長さ
if($from>$ str_len )//インターセプトの開始位置が文字列の長さより大きい場合は、次の $length
$from=$str_len-$length 1;
$from=($from }
//ucs-4 エンコーディングと互換性があります
$i=0;//バイト数
$from_i=0;//インターセプトを開始するバイト位置
$from_len=0 ;//インターセプトする開始文字位置
$tag=true;// $from_len に値が割り当てられているかどうかをマークします
for($temp_len=0;($temp_len-$from_len $byte_code=ord(substr($str,$i,1));//1 バイトのエンコード
if($temp_len 1==$from )//インターセプトの記録開始 開始バイト位置は数バイトです。utf-8 は可変長エンコーディングであり、各文字の最初のバイトに応じて、その文字が何バイトを占めるかを判断できます ;191&&$byte_code
if($byte_code&g t;239&&$byte_code<248){
$i =4; $i =5;
}
_コード>252&&$バイト_コード $i =6;
}
}
return iconv('utf-8',$code,substr($ str,$from_i,$i-$from_i). $後);
}