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 相关文章推荐
详细介绍PHP应用提速面面观
Oct 09 PHP
php变量范围介绍
Oct 15 PHP
基于php权限分配的实现代码
Apr 28 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
Jul 23 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 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实现httpRequest的方法
2015/03/13 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
JS与框架页的操作代码
2010/01/17 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
js实现点击按钮后给Div图层设置随机背景颜色的方法
2015/05/06 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
python ddt实现数据驱动
2018/03/14 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
在什么时候需要使用"常引用"
2015/12/31 面试题
教师专业理论水平的自我评价分享
2013/11/09 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2015年社区统计工作总结
2015/04/21 职场文书