PHP中英混合字符串截取的函数代码
来源:互联网 发布:手机linux系统安装教程 编辑:程序博客网 时间:2024/04/28 15:17
中英字符串截取的问题,在gbk里中文里每个字占两字节,如果全是中文的话,用substr()函数就可以实现了,但中英都有的话就麻烦了,用以下代码可以很好的实现截取。
代码如下:
结果:
欢迎 visit..
代码如下:
<?php/*** 中英混合字符串截取* by www.jbxue.com*/function get_word($string, $length, $dot = '..',$charset='gbk') { if(strlen($string) <= $length) { return $string; } $string = str_replace(array(' ',' ', '&', '"', '<', '>'), array('','','&', '"', '<', '>'), $string); $strcut = ''; if(strtolower($charset) == 'utf-8') { $n = $tn = $noc = 0; while($n < strlen($string)) { $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { $tn = 1; $n++; $noc++; } elseif(194 <= $t && $t <= 223) { $tn = 2; $n += 2; $noc += 2; } elseif(224 <= $t && $t < 239) { $tn = 3; $n += 3; $noc += 2; } elseif(240 <= $t && $t <= 247) { $tn = 4; $n += 4; $noc += 2; } elseif(248 <= $t && $t <= 251) { $tn = 5; $n += 5; $noc += 2; } elseif($t == 252 || $t == 253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if($noc >= $length) { break; } } if($noc > $length) { $n -= $tn; } $strcut = substr($string, 0, $n); } else { for($i = 0; $i < $length; $i++) { $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i]; } } return $strcut.$dot; } $str = "欢迎 visit 简明 nowamagic"; $str_result = get_word($str, 12); echo $str_result; ?>
结果:
欢迎 visit..
- PHP中英混合字符串截取的函数代码
- php中英混合字符串截取的函数代码
- PHP截取含中文的混合字符串长度的函数
- php可包含混合字符串长度的截取函数
- PHP截取中英文及标点符号混合的字符串函数
- PHP中字符串超长的中英文混合截取
- PHP截取中英混合字符串(UTF-8)
- 截取字符串(中英混合串)-JAVA代码
- php中计算中文字符串长度、截取中文字符串的函数代码
- (实用篇)php中计算中文字符串长度、截取中文字符串的函数代码
- 中英混合字符串按字节截取的小问题
- php截取中英文混合字符串
- PHP 截取字符串的函数
- php截取中英文混合字符串函数以及用法
- PHP 中英文混合排版中处理字符串常用的函数
- php中截取UTF-8字符串的函数
- php中常用的字符串截取函数mb_substr实例解释
- 代码中字符串的截取
- Leetcode: Path Sum
- Leetcode: Path Sum II
- php仿QQ验证码的代码分享
- PHP删除数组中特定元素的两种方法
- PHP删除数组中的特定元素的代码
- PHP中英混合字符串截取的函数代码
- php读取html并截取字符串的代码
- php 截取中文字符串的代码分享
- 浅析php过滤html字符串,防止SQL注入的方法
- 6.1.2 基于主键的单向1--->1关联
- PHP防止SQL注入的实现代码
- 64AMD Debian装qq 1.0
- maven中snapshot快照库和release发布库的区别和作用
- Unity 粒子的相关属性介绍