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关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
Laravel 实现密码重置功能
Feb 23 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 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的FTP学习(四)
2006/10/09 PHP
php动态变量定义及使用
2015/06/10 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
jquery中this的使用说明
2010/09/06 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
Javascript Objects详解
2014/09/04 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
ReactNative中使用Redux架构总结
2017/12/15 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
医生个人年终总结
2015/02/28 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
消费者理赔投诉书
2015/07/02 职场文书
房产遗嘱范本
2015/08/06 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书