多数网上的PHP中文字符串截取,计算长度用的是逐个字符遍历的方法,看起来比较复杂 这里提供哦你一种基于正则的解决方案,GBK,UTF-8的中文字符串测试通过 无 ?php/** * @brief strlen_mb 计算字符串长度,支持中文,自动检测编码,UTF-8与GBK测试通过 * * @p
多数网上的PHP中文字符串截取,计算长度用的是逐个字符遍历的方法,看起来比较复杂
这里提供哦你一种基于正则的解决方案,GBK,UTF-8的中文字符串测试通过
<?php /** * @brief strlen_mb 计算字符串长度,支持中文,自动检测编码,UTF-8与GBK测试通过 * * @param $str * * @return */ function strlen_mb($str){ $mb_len = mb_detect_encoding($str) == 'UTF-8' ? 2 : 1; $patt = '/([\x00-\x7f]|[\x80-\xff].{' . $mb_len . '})/'; $match = preg_match_all($patt, $str, $groups); if($groups){ return count($groups[0]); }else{ return false; } } /** * @brief substr_mb 截取字符串,中文防乱码,自动检测编码,UTF-8与GBK测试通过 * * @param $str * @param $start * @param $len * * @return */ function substr_mb($str, $start, $len){ $mb_len = mb_detect_encoding($str) == 'UTF-8' ? 2 : 1; $patt = '/([\x00-\x7f]|[\x80-\xff].{' . $mb_len . '}){' . $len . '}/'; preg_match($patt, $str, $groups); if($groups){ return $groups[0]; }else{ return false; } } echo '<meta charset=utf-8>'; $str = '北京dd欢迎你'; for($i = 0; $i <= strlen_mb($str); $i++){ var_dump(substr_mb($str, 0, $i)); }
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前ByDDD
Atomfallのクレーンコントロールキーカードを見つける場所
3週間前ByDDD
R.E.P.O.で節約説明した(そしてファイルを保存)
1 か月前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
