多数网上的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 Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
3 週前ByDDD
節省R.E.P.O.解釋(並保存文件)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影 - 如何找到鐵匠,解鎖武器和裝甲定制
4 週前ByDDD

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能