ホームページ  >  記事  >  バックエンド開発  >  PHP はさまざまなエンコーディングで文字列の長さを区別します_PHP チュートリアル

PHP はさまざまなエンコーディングで文字列の長さを区別します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:43:56891ブラウズ

UTF-8 中国語文字列は 3 バイトです

コードをコピーします コードは次のとおりです:

//Encoding UTF-8
echo strlen('test text a test text' ) ;
echo '-';
echo mb_strlen('test text a test text','utf-8');
出力: 25-9

セクション


コードをコピーします
コードは次のとおりです: //Encoding GB2312
echo strlen('test text a test text');
echo '-'
echo mb_strlen(' test Text a test text','Gb2312');


出力: 17-9
MySQL データベース (バージョン 5.1 以降) の場合、フィールドの型が varchar(10) の場合、10 文字を挿入できます。 (バイトではありません);
そのため、文字列の長さを判断するときは、ドキュメントのエンコーディングに基づいて区別する必要があります。
単純な UTF-8 文字列インターセプト (文字数に基づくインターセプト)



コードをコピーします
コードは次のとおりです: /*
* UTF-8 文字列インターセプト
* $ str インターセプトする文字列
* $start インターセプト開始位置
* $length インターセプト長
*/
function CutStr($str,$start,$length) {
$restr = '';
$end = $length + $start - 1;
$plen = strlen($str);
for($i=0;$i<$plen;$i++) {
$restr .= ord($str[ $i])>127 ? $str[$i].$str[++$i] : $str[$i]
if ($j < ; $start){$restr = '';}
if ($j >= $end){break;}
}
$restr .='';ニューネット、9月24日:今日、米国のピッツバーグで20カ国・地域(G20)首脳による第3回金融サミットが開催される。 ';
echo $str;
echo utf8_substr($str,0,25);

;



http://www.bkjia.com/PHPjc/320670.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320670.html
技術記事

UTF-8 の中国語文字列は 3 バイトです。コピー コードは次のとおりです。 ?php //Encoding UTF-8 echo strlen('test text a test text'); echo mb_strlen('test text a);テストテキスト'、...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。