自己写的php中文截取函数mb_strlen和mb_substr
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-10 21:53:36 浏览: 评论:0
这篇文章主要介绍了自己写的php中文截取函数mb_strlen和mb_substr,在服务器没mbstring库时可以使用本文函数代替,需要的朋友可以参考下
众所周知,php 自带的 strlen 与 substr 函数没法处理中文字符,于是,我们会用 mb_ 系列函数替代,但是,没有 mbstring 库怎么办?这就需要我们自己写一个来替代了,废话不多说,先上代码:
- if ( !function_exists('mb_strlen') ) {
- function mb_strlen ($text, $encode) {
- if ($encode=='UTF-8') {
- return preg_match_all('%(?:
- [\x09\x0A\x0D\x20-\x7E] # ASCII
- | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
- | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
- | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
- | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
- | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
- | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
- | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
- )%xs',$text,$out);
- }else{
- return strlen($text);
- }
- }
- }
- /* from Internet, author unknown */
- if (!function_exists('mb_substr')) {
- function mb_substr($str, $start, $len = '', $encoding="UTF-8"){
- $limit = strlen($str);
- for ($s = 0; $start > 0;--$start) {// found the real start
- if ($s >= $limit)
- break;
- if ($str[$s] <= "\x7F")
- ++$s;
- else {
- ++$s; // skip length
- while ($str[$s] >= "\x80" && $str[$s] <= "\xBF")
- ++$s;
- }
- }
- if ($len == '')
- return substr($str, $s);
- else
- for ($e = $s; $len > 0; --$len) {//found the real end
- if ($e >= $limit)
- break;
- if ($str[$e] <= "\x7F")
- ++$e;
- else {
- ++$e;//skip length
- while ($str[$e] >= "\x80" && $str[$e] <= "\xBF" && $e < $limit)
- ++$e;
- }
- }
- return substr($str, $s, $e - $s);
- }
- }
Tags: mb_strlen mb_substr
相关文章
- ·php判断字符串长度 strlen()与mb_strlen()函数(2014-07-26)
- ·PHP strlen和mb_strlen的区别(2014-07-28)
- ·php中mb_strlen与strlen函数详解(2014-09-18)
- ·详解PHP中strlen和mb_strlen函数的区别(2020-10-19)
- ·PHP中strlen()和mb_strlen()的区别浅析(2021-02-22)
- ·字符串长度函数strlen和mb_strlen的区别示例介绍(2021-04-11)
- ·php常用字符串长度函数strlen()与mb_strlen()用法实例分析(2021-11-28)
- ·php中中文截取函数mb_substr()详细(2013-11-30)
- ·substr(),mb_substr()及mb_strcut函数用法与区别(2014-01-17)
- ·PHP截断函数mb_substr()详细介绍(2014-09-14)
- ·php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析(2021-02-10)
- ·php mb_substr()函数截取中文字符串应用示例(2021-03-27)
- ·php字符串截取函数mb_substr用法实例分析(2021-11-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)