コードをコピーします コードは次のとおりです:
/* UTF-8 漢字切り捨てプログラム*/
$str = "123 これはテスト文字列です"; "()( )";
echo subUTF8str($str,0,3)."
"; str1,0, 4)."
";
echo subUTF8str($str1,0,10)."
";
function subUTF8str($str,$start=0,$length=80) {
$cur_len = 0; //人間が理解できる文字列長
$all_len = strlen($str); //機械が理解できる文字列長
if($length > $all_len)
{
return $str;
}
for( $i = 0;$i < $all_len;)
{
if($cur_len == $start)
{
break;
}
if (ord($str[$i]) > ; 127)
{
$i += 3;
$i += 1;
$start_pos = $i; ;$cur_len - $ temp_pos < $length;)
{
if($i >= $all_len)
break; (ord($str[$i]) > 127)
{
$i + = 3;
$i += 1;
$end_pos = $i;
? ;
実際、PHP にはネイティブのマルチ文字セット文字インターセプト ソリューションがあります。ええと、次のようになります...囧..
マルチバイト文字列関数関数ファミリー、
string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] ) は文字列をインターセプトするために使用されます
int mb_strlen ( string $str [, string $encoding ] ) は文字列の長さを返します
....
詳細については PHP マニュアルを確認してください
http://www.bkjia.com/PHPjc/326024.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/326024.html
技術記事
次のコードをコピーします。 ?php /* UTF-8 漢字切り捨てプログラム*/ $str = "123 これはテスト文字列です" $str1 = "()()"; echo subUTF8str($str,0,3) ) ."br"; echo subUTF8str($str,0,4)...