php中文拦截功能mb_strlen和mb_substr你自己写的

php中文拦截功能mb_strlen和mb_substr你自己写的
我们都知道,PHP的函数strlen函数并不能处理汉字,所以我们将取代它的mb_系列功能。但你没有mbstring图书馆吗这就要求我们写一个替换它,不再废话,首先在代码上:

复制代码代码如下所示:

如果(!function_exists('mb_strlen ')){

功能mb_strlen($文本编码,$){

如果($编码= = 'utf-8){

返回preg_match_all(%s(:

{ x09 x0a x0d X20 - x7e ASCII # }

{ XC2 - XDF } { X80 - XBF }非超长字节| #

xe0 { xA0 - XBF } { X80 - XBF }不包括overlongs | #

{ XE1 - XeF XEC夕} { X80 - XBF } { 2 }直| # 3字节

固定{ X9F } { X80 - X80 - XBF }不包括代理人| #

xf0 { X90 - XBF } { X80 - XBF } { 2 }面| # 1-3

{ XF1 - xf3 } { X80 - XBF } { 3 }面4-15 | #

| # 幅国土{ X80 - x8f } { X80 - XBF } { 2 }平面16

XS)%,$文本,美元);

其他{ }

返回strlen($文本);

}

}

}

从Internet作者未知。

如果(!function_exists('mb_substr ')){

功能mb_substr($str,美元开始,len =美元,美元=UTF-8编码){

为限制= strlen(str);
对于($ = 0;$开始> 0;;$开始找到真正的开始)

如果($ = $限制)

打破;
如果($str { }美元<= x7f )

++;

{其他

++
而($str { $ } > = X80$str { $ } 工具)

++;

}

}
如果($ = '')

返回substr($str,$ S);

其他的

对于($ = $ s;$ 0;;),找到真正的结束

如果($ = $限制)

打破;
如果($str { $ E } < = x7f )

+ e;

{其他

++;跳过长度
而($str { $ E } > = X80$str { $ E } 工具$ E $极限)

+ e;

}

}
返回substr($str,$,$ E $ S);

}

}

tag:中文你自己功能电脑软件php

相关内容