截取固定长度汉字差半个字符
来源:互联网 发布:数据可视化之美 编辑:程序博客网 时间:2024/06/07 13:27
/* 截取固定长度汉字差半个字符 */
function tit($str, $length, $suffix=false ,$charset="utf-8",$conlen = false )
{
//$length -= 1;
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['utf8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
$allen = (strlen($str) + mb_strlen($str,'utf-8'))/4 ;
if($allen <= $length or !$length) return $str;
preg_match_all($re[$charset], $str, $match);
$c = 0;
$fv = '';
foreach ($match[0] as $v) {
$len = strlen($v) > 1 ? 2 : 1 ;
//dump($v.'-'.$len);
$c += $len;
$fv .= $v;
if($c == $length*2 or $c == $length*2+1)
{
return ($suffix) ? $fv."…" : $fv;
break;
}
}
}
function tit($str, $length, $suffix=false ,$charset="utf-8",$conlen = false )
{
//$length -= 1;
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['utf8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
$allen = (strlen($str) + mb_strlen($str,'utf-8'))/4 ;
if($allen <= $length or !$length) return $str;
preg_match_all($re[$charset], $str, $match);
$c = 0;
$fv = '';
foreach ($match[0] as $v) {
$len = strlen($v) > 1 ? 2 : 1 ;
//dump($v.'-'.$len);
$c += $len;
$fv .= $v;
if($c == $length*2 or $c == $length*2+1)
{
return ($suffix) ? $fv."…" : $fv;
break;
}
}
}
- 截取固定长度汉字差半个字符
- CSS截取固定长度字符
- 截取指定长度的字符串(汉字不出现半个)
- 截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)
- 截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)
- 截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)
- js截取固定长度的中英文字符
- 绑定数据截取固定的字符长度
- .net前台截取固定长度超出显示字符
- 截取指定的字符长度(其中字符串中有中文,如果有半个中文则去掉)
- JAVA 中字符串的截取,要求不能截取半个汉字
- 截取字符串,含有汉字和字母,不能截半个汉字
- 有汉字字符串的截取,汉字不能截半个
- 中英文 截取固定长度显示
- 截取字符长度
- php截取字符长度
- 截取指定长度的字符串(UTF-8专用 汉字和大写字母长度算1,其它字符长度算0.5)
- php中截取汉字,避免半个字节的问题
- url传递中文乱码问题
- LPTSTR转换为std::string方法探索
- 在JSP中生成平面柱状图
- android 被强制横屏,Activity重启问题解决方案
- 线性链表之123
- 截取固定长度汉字差半个字符
- 专题3-1.编译过程简介
- java编程练习题
- C++ std::list.size() has linear complexity
- 1005 威威猫系列故事——篮球梦
- android:inputType 属性及其支持的取值
- gstapp-0.10库的安装
- javascript与jquery与node.js
- linux常用系统命令