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文件的实现方法
Mar 19 PHP
实用函数7
Nov 08 PHP
php中用foreach来操作数组的代码
Jul 17 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
php 使用array函数实现分页
Feb 13 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
实例讲解php实现多线程
2019/01/27 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python对list中的每个元素进行某种操作的方法
2018/06/29 Python
Python计算一个点到所有点的欧式距离实现方法
2019/07/04 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
自考生自我鉴定范文
2013/10/01 职场文书
煤矿班组长的职责
2013/12/25 职场文书
搞笑获奖感言
2014/01/30 职场文书
优良学风班总结材料
2014/02/08 职场文书
入党自荐书范文
2014/03/09 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
《菜园里》教学反思
2014/04/17 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js