phputf8汉字截断函数代码
PHP中英文混合字符截断无随机码功能(UTF8)复制代码代码如下所示:
/ / UTF8格式的中文字符截断
/ / $ sourcestr是字符串处理
/ / $ cutlength是截取的长度(即字数)
/ /在长度增加addstr美元结束字符
功能cut_str(sourcestr美元美元美元,cutlength,addstr = '…){
returnstr美元=;
$ I = 0;
$ = 0;
str_length美元= strlen($ sourcestr); / /字节串
而(($ n<cutlength美元)和($我< = $ str_length)){
temp_str美元= substr(sourcestr美元美元,我,1);
ascnum美元= ORD($ temp_str); / /一串ASCII码获得$我的性格
如果($ ascnum > = 224){ / /如果ASCII是高224,
returnstr = $(美元returnstr.substr sourcestr美元,我美元,3); / /根据编码标准的UTF-8,3个连续的字符一个字符
$ i = $ I +;3 3字节的实际计划
美元;字符串长度1米
} elseif($ ascnum > = 192){ / /如果ASCII是高192,
returnstr = $(美元returnstr.substr sourcestr美元,我美元,2); / /根据编码标准的UTF-8,2个连续的字符一个字符
$ i = $ I +;2 2字节的实际计划
美元;字符串长度1米
} elseif($ ascnum > = 65美元ascnum <= 90){ / /如果大写字母,
returnstr = $(美元returnstr.substr sourcestr美元美元,我,1);
$ i = i + 1; /实际字节是1。
但是,考虑到整体外观,大写字母变成了一个米高的字符。
} { / /其他其他情况,包括小写字母和标点半角,
returnstr = $(美元returnstr.substr sourcestr美元美元,我,1);
$ i = i $ 1;实际字节号为1
$ = $ n + 0.5;小写字母和标点符号和半高宽字符…
}
}
如果($ str_length > $ cutlength){
returnstr = returnstr美元美元。addstr美元; / /在尾部加字符长度
}
返回的returnstr;
}
复制代码代码如下所示:
< PHP
UTF-8 / *汉字截断过程。
123这是一个测试字符串;
$ str1 =()()();
回声subutf8str($str,0,3)。;
回声subutf8str($str,0,4)。;
回声subutf8str($ str1,0,4)。;
回声subutf8str($ str1,0,10)。;
Function subUTF8str ($str, $start=0, $length=80) {
cur_len美元= 0; / /字符串长度的理解
all_len美元= strlen(str); / /机器理解字符串长度
如果(合长度> all_len美元)
{
返回$ STR;
}
为($我= 0;$我<< all_len美元;)
{
如果($ cur_len = $开始)
{
打破;
}
如果(ORD($str {我})> 127)
{
$ I = 3;
其他{ }
$ I = 1;
}
cur_len美元+ +;
}
start_pos美元= $我;
temp_pos = cur_len美元美元;
为(;cur_len美元美元美元temp_pos <长度;)
{
如果(我= $ all_len)
打破;
如果(ORD($str {我})> 127)
{
$ I = 3;
其他{ }
$ I = 1;
}
cur_len美元+ +;
}
end_pos美元= $我;
返回substr($str,start_pos美元,美元end_pos);
}
>
事实上,有PHP自身特点,多字符集的量,所以它是这样的…尴尬。
在多字节字符串函数函数族,
mb_substr字符串(字符串str,int $开始{ int $ {字符串长度,为编码,编辑字符串截取)
国际mb_strlen(String str {,字符串的编码})返回字符串的长度
的…
详细查看PHP手册。