开发者社区> vip1888> 正文

PHP技术分享--实现中文字串截取无乱码的函数(适用于utf-8)

简介:
+关注继续查看
<?php
// 实现中文字串截取无乱码的函数(适用于utf-8)
function substr_text($str, $start=0, $length, $charset="utf-8", $suffix="")
{
if(function_exists("mb_substr"))
{
// 判断中文长度,超过指定长度超出部分显示...
if (mb_strlen($str,$charset)>$length)
{
return mb_substr($str, $start, $length, $charset).$suffix.'...';
}
else
{
return mb_substr($str, $start, $length, $charset).$suffix;
}
}
elseif(function_exists('iconv_substr'))
{
// 判断中文长度,超过指定长度超出部分显示...
if (mb_strlen($str,$charset)>$length)
{
return iconv_substr($str,$start,$length,$charset).$suffix.'...';
}
else
{
return iconv_substr($str,$start,$length,$charset).$suffix;
}
}
$re['utf-8']  = "/[\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])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
return $slice.$suffix;
}

echo substr_text('菜单测试',0,2);
?>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
中文字节长度引起的数据丢失
最近在写一个应用监控的项目,使用netty作为数据传输。因为刚开始写,没有使用Protobuf之类的作为编码工具,只是使用的是netty自带的LengthFieldBasedFrameDecoder作为报文解析工具,自定义编码解码类,实现数据传输。
31 0
好程序员web前端培训分享js实现实战案例
好程序员web前端培训分享js实现实战案例,实际开发中有要求用户一些行为每天一次,次日开始重新回复功能,一般前端都是通过cookie来记住用户的操作,然后进行判断当日是否还有机会,这时候需要给存储的cookie值一个有效期,让次日自动失效,重新计数,代码如下: cookie = { /** * ...
1079 0
Qt-QML-关于两个平级的qml文件中的函数调用问题
Qt-QML-关于两个平级的qml文件中的函数调用问题
44 0
THINKPHP截取中文字符串函数
在项目开发中,我们常常会遇到中文字符串截取问题,比如说商品名称过长等,这就要用到字符串截取了。 下面我就为大家分享一个字符串截取函数,以在thinkphp中为例子!
19 0
DockOne微信分享(九十七):现有系统实施微服务架构改进经验分享
本文讲的是DockOne微信分享(九十七):现有系统实施微服务架构改进经验分享【编者的话】微服务是最近非常热门的话题了,它带来的好处吸引不少互联网公司对现有项目进行微服务架构改进。 本次分享是博主根据自身的项目经验,介绍如何对现有架构进行调整,总结这过程中的相关技术选型,以及如何实施技改,并分享最终取得的非常让人意外的成果。
1551 0
阿里云机器学习技术分享1——图像识别之TensorFlow实现方法【视频+PPT】
阿里云AI之图像识别技术是如何实现的!?视频+PPT干货奉上 讲师简介:赵昆 阿里巴巴机器学习技术专家 欢迎加入阿里云机器学习大家庭,**钉钉群:11768691** , QQ群:567810612 一、阿里云机器学习之图像识别实践-基础篇: 观看视频:http://cloud.
3448 0
PHP Header下载文件在IE文件名中文乱码问题
解决PHP Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码,根据UA检测,区别下载,就可以解决了 $filename = "中文.
1085 0
使用阿里云Serverless函数计算实现HTTP健康检查+故障短信通知
定时对网站/API进行请求,根据请求响应判断服务是否可用,网站是否存在宕机,当发生宕机时,发送短信通知管理员.
1155 0
+关注
61
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载