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 相关文章推荐
支持数组的ADDSLASHES的php函数
Feb 16 PHP
PHP 飞信好友免费短信API接口开源版
Jul 22 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
Yii2实现ajax上传图片插件用法
Apr 28 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
Nginx环境下PHP flush失效的解决方法
Oct 19 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
phpcms的分类名称和类别名称的调用
Jan 05 PHP
php unicode编码和字符串互转的方法
Aug 12 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防注
2007/01/15 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
详解JS函数stack size计算方法
2018/06/18 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
微信小程序云开发之使用云存储
2019/05/17 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
python模拟事件触发机制详解
2018/01/19 Python
python使用turtle绘制分形树
2018/06/22 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python中无限循环需要什么条件
2020/05/27 Python
详解python中的异常捕获
2020/12/15 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
个人贷款担保书
2014/04/01 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2015年妇女工作总结
2015/05/14 职场文书
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL