php 截取utf-8格式的字符串实例代码


Posted in PHP onOctober 30, 2016

php 截取utf-8格式的字符串

php中,我们经常需要截取字符串。英文字符占用一个字节,中文字符占用两个字节,但中文字符占用两个字节是相对于GBK编码而言但是在时下国际流行的UTF8编码中,一个中文字符占用3个字节。本文章向大家介绍一个php 截取utf-8格式字符串的函数。

举例说明:

function truncate_utf8_string($string, $length, $etc = '...') {
 $result = '';
 $string = html_entity_decode ( trim ( strip_tags ( $string ) ), ENT_QUOTES, 'UTF-8' );
 $strlen = strlen ( $string );
 for($i = 0; (($i < $strlen) && ($length > 0)); $i ++) {
 if ($number = strpos ( str_pad ( decbin ( ord ( substr ( $string, $i, 1 ) ) ), 8, '0', STR_PAD_LEFT ), '0' )) {
  if ($length < 1.0) {
  break;
  }
  $result .= substr ( $string, $i, $number );
  $length -= 1.0;
  $i += $number - 1;
 } else {
  $result .= substr ( $string, $i, 1 );
  $length -= 0.5;
 }
 }
 $result = htmlspecialchars ( $result, ENT_QUOTES, 'UTF-8' );
 if ($i < $strlen) {
 $result .= $etc;
 }
 return $result;
}

如果需要截取utf-8格式的字符串,直接调用这个函数即可。

<?php
  $str="如果需要截取utf-8格式的字符串,直接调用这个函数即可。";
  echo truncate_utf8_string($str,10);//输出结果:如果需要截取utf-8格...
?>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
linux命令之调试工具strace的深入分析
Jun 03 PHP
php检测useragent版本示例
Mar 24 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 #PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 #PHP
浅谈php处理后端&amp;接口访问超时的解决方法
Oct 29 #PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 #PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 #PHP
浅谈PHP定义命令空间的几个注意点(推荐)
Oct 29 #PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
Oct 28 #PHP
You might like
php实现websocket实时消息推送
2018/03/30 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
2013/12/16 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
Python 面向对象部分知识点小结
2020/03/09 Python
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
市场营销专科应届生求职信
2013/11/24 职场文书
初中英语教学反思
2014/01/25 职场文书
生活小常识广播稿
2014/09/16 职场文书
个人租房协议书样本
2014/10/01 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
导游词之太湖
2019/10/08 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS