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 相关文章推荐
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP中对用户身份认证实现两种方法
Jun 04 PHP
PHP小教程之实现链表
Jun 09 PHP
在php和MySql中计算时间差的方法详解
Mar 27 PHP
ThinkPHP中数据操作案例分析
Sep 27 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
Laravel服务容器绑定的几种方法总结
Jun 14 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
咖啡语言
2021/03/03 咖啡文化
PHP 第二节 数据类型之转换
2012/04/28 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
js选择器全面解析
2016/06/27 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
鸿蒙系统中的 JS 开发框架
2020/09/18 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python中stdout输出不缓存的设置方法
2014/05/29 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Python的历史与优缺点整理
2020/05/26 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
怎样写好创业计划书的内容
2014/02/06 职场文书
药店主任岗位责任制
2014/02/10 职场文书
优秀员工推荐信
2014/05/10 职场文书
心理健康教育主题班会
2015/08/13 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
创业计划书之面包店
2019/09/12 职场文书
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
Java 写一个简单的图书管理系统
2022/04/26 Java/Android