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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
Windows7下PHP开发环境安装配置图文方法
May 20 PHP
PHP实现生成透明背景的PNG缩略图函数分享
Jul 08 PHP
php 访问oracle 存储过程实例详解
Jan 08 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
python发腾讯微博代码分享
2014/01/10 Python
Python中的字典遍历备忘
2015/01/17 Python
python制作小说爬虫实录
2017/08/14 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python导入模块交叉引用的方法
2019/01/19 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
学校招生宣传广告词
2014/03/19 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
小学体育教学随笔
2015/08/14 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers
Java中的继承、多态以及封装
2022/04/11 Java/Android