php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析


Posted in PHP onJune 10, 2014

示例代码,用到了函数substr与iconv_substr,mb_substr

<html>
<head><meta charset='utf-8'>
<title>截取中文字符串_三水点靠木_3water.com</title>
</head>
<body>
<?php
$str='123三水点靠木456欢迎大家的光临';
echo substr($str,0,4);
echo '<br>';
echo iconv_substr($str,0,4,'utf-8');
echo '<br>';
echo mb_substr($str,0,4,'utf-8');
?>
</body>
</html>

说明:
以上代码用到了二个函数iconv_substr和mb_substr,均可以在当前字符下进行字符串截取,以达到中文字符截取的不乱码。

应该如何选择呢?

1、iconv库在某些操作系统上可能运行不正确,需要安装GNU扩展库以保证它的正常运行。mb_substr函数的兼容性更好。

2、iconv函数会先将当前字符串转换为相应的编码再进行截取,而mb函数则是直接根据指定的编码进行截取(提供安全的多字节截取),所以mb函数的截取效率更高。

因此,mb_substr函数进行中文字符串的截取为最合适的选择。

PHP 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
56.com视频采集接口程序(PHP)
Sep 22 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
在PHP中PDO解决中文乱码问题的一些补充
Sep 06 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
深入Nginx + PHP 缓存详解
Jul 11 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
一个严格的PHP Session会话超时时间设置方法
Jun 10 #PHP
解决CodeIgniter伪静态失效
Jun 09 #PHP
CI(CodeIgniter)框架介绍
Jun 09 #PHP
CI框架中集成CKEditor编辑器的教程
Jun 09 #PHP
PHP小教程之实现链表
Jun 09 #PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 #PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 #PHP
You might like
php解析url的三个示例
2014/01/20 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
python爬取个性签名的方法
2018/06/17 Python
python 读取文件并替换字段的实例
2018/07/12 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
python中数据库like模糊查询方式
2020/03/02 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
中学生演讲稿
2014/04/26 职场文书