php中文字符串截取方法实例总结


Posted in PHP onSeptember 30, 2014

本文实例总结了php中文字符串截取方法,非常实用的技巧。分享给大家供大家参考。具体方法分析如下:

用PHP函数substr截取中文字符可能会出现乱码,主要是substr可能硬生生的将一个中文字符“锯”成两半。

解决办法如下:

1、使用mbstring扩展库的mb_substr截取就不会出现乱码了。

2、自己书写截取函数,但效率不如用mbstring扩展库来得高。

3、如果仅是为了输出截取的串,可用如下方式实现:substr($str, 0, 30).chr(0)。

substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函数,mb_substr()/mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。

举2个例子:

① mb_substr示例

<?php
echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
//输出:这样一来我的字
?>

② mb_strcut示例

<?php
echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
//输出:这样一
?>

通过上述示例可见mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。

PHP实现中文字串截取无乱码的方法:

<?php
//此函数完成带汉字的字符串取串
function substr_CN($str,$mylen){ 
$len=strlen($str);
$content='';
$count=0;
for($i=0;$i<$len;$i++){
if(ord(substr($str,$i,1))>127){
$content.=substr($str,$i,2);
$i++; 
}else{
$content.=substr($str,$i,1);
}
if(++$count==$mylen){
break;
}
}
echo $content;
}

$str="34中华人民共和国56";
substr_CN($str,3);//输出34中
?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
Discuz 模板语句分析及知识技巧
Aug 21 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php数据类型判断函数有哪些
Sep 23 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
详解PHP5.6.30与Apache2.4.x配置
Jun 02 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
phpinfo的知识点总结
Oct 10 PHP
Yii框架自定义数据库操作组件示例
Nov 11 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
Laravel中获取IP的真实地理位置
Apr 01 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 #PHP
php中运用http调用的GET和POST方法示例
Sep 29 #PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 #PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 #PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 #PHP
推荐25款php中非常有用的类库
Sep 29 #PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 #PHP
You might like
php URL验证正则表达式
2011/07/19 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python编码时应该注意的几个情况
2013/03/04 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
Python新手实现2048小游戏
2015/03/31 Python
讲解Python中的标识运算符
2015/05/14 Python
Python中特殊函数集锦
2015/07/27 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
Servlet方面面试题
2016/09/28 面试题
工程部主管岗位职责
2013/11/17 职场文书
优秀中专生推荐信
2013/11/17 职场文书
应用心理学个人的求职信
2013/12/08 职场文书
活动总结报告格式
2014/05/09 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
vue 实现弹窗关闭后刷新效果
2022/04/08 Vue.js
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python