php哪个函数具有字符串截取功能(php字符串截取函数mb_substr用法实例分析)
php哪个函数具有字符串截取功能
php字符串截取函数mb_substr用法实例分析本文实例讲述了php字符串截取函数mb_substr用法。分享给大家供大家参考,具体如下:
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )-截取字符串
(PHP 4 >= 4.0.6, PHP 5)
$str 要获取字符串的目标字符串(字符串起始位置为0)
$start,$str中要使用的第一个字符的位置
$length,获取的子字符串的长度(注意不是结束位置)
$encoding,可指定字符编码(一般用于处理中文字符时使用,同时这个问题碰到的非常多)
示例:
|
<?php mb_internal_encoding ( "UTF-8" ); //如果把UTF-8改为编码,下面针对于中文字符串处理的值会改变。 echo mb_internal_encoding(). "" ; //获取字符编码为ISO-8859-1 echo mb_substr( 'abcdefghijk' ,0,9). "" ; //abcdefghi echo mb_substr( 'abcdefghijk' ,1,5). "" ; //bcdef echo mb_substr( '我们都是中国人' ,0,9). "" ; //我们都是中国人 echo mb_substr( '我们都是中国人' ,0,9, 'gb2312' ). "" ; //我们都是中 echo mb_substr( '我们都是中国人' ,0,9, 'utf-8' ); //我们都是中国人 ?> |
总结:
1、在处理英文字符串的时候,该函数的第四个参数($encoding)可以忽略。
2、在处理中文字符串的时候,就要小心了,一定要考虑编码问题,编码不同,中文的值也不同。
3、在中文字符串导入数据库时,就显得更为重要了。
4、处理字符串或文本的编码能力,是衡量程序员功力的一项标准。
补充:substr和mb_substr的区别
异同点:
两个函数都是截取字符串的长度,不同的是mb_substr
可以针对多字节编码的汉字进行截取,从而防止乱码的出现
实例说明:
示例1:
|
<?php $chuan = "我是中国人!" ; echo substr ( $chuan ,0,3); echo '<br />' ; echo mb_substr( $chuan ,0,3, 'utf8' ); ?> |
运行结果:
我
我是中
在utf8编码下,由于一个汉字占3个字节,所以第一个输出的是: 我
第二个输出的是: 我是中
示例2:
|
<?php $chuan = "我是中国人!" ; echo substr ( $chuan ,0,-4); echo '<br />' ; echo mb_substr( $chuan ,0,-2, 'utf8' ); ?> |
运行结果:
我是中国
我是中国
两个输出的都是: 我是中国
第一个长度为负4,就会省略掉!和人,从零开始,就会包括我是中国
第二个同理
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/jinsanguo/p/7627359.html
- php array只能放一种类型的数据(浅谈PHP array_search 和 in_array 函数效率问题)
- phpstudyv8.0使用教程学习(phpStudy环境安装SSL证书教程)
- phpstorm 菜单如何添加和修改(phpstorm 配置xdebug的示例代码)
- php小例子(PHP反射实际应用示例)
- phpstudy8.0使用教程视频(phpstudy v8.1 Apache伪静态配置图文教程)
- php面向对象3大特征(PHP面向对象程序设计重载overloading操作详解)
- docker下怎么搭建一个php环境(Docker搭建php环境教程详解)
- php教程7.10.6学习(php5.6.x到php7.0.x特性小结)
- php错误处理及调试(php报错502 bad gateway解决方法)
- nginx 怎么搭建web服务器(Linux+Nginx+Php架设高性能WEB服务器)
- php运用redis实现抢购实例(PHP+redis实现微博的拉模型案例详解)
- php运行实例(php实例化一个类的具体方法)
- apache搭建php环境(Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合)
- php常驻进程(PHP 多进程与信号中断实现多任务常驻内存管理实例方法)
- phpstudy数据库搭建教程交流(phpStudy V8如何修改数据库root密码)
- php cgi是什么意思(PHP7内核CGI与FastCGI详解)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
- 冬季养殖这6种阴生植物,方便又好养,你家有么(冬季养殖这6种阴生植物)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
- 常见的喜阴植物有哪些 养室内盆栽就在这里选(常见的喜阴植物有哪些)
热门推荐
- sql server锁原理(Sql Server 死锁的监控分析解决思路)
- docker 查看当前镜像(Docker 查看镜像信息的方法)
- sqlparamter如何传递nvarchar(max) 参数
- dedecms如何使用标签(dedecms模板标签如何做判断示例代码)
- 无法访问docker容器内的端口(docker端口映射及外部无法访问问题)
- sql server日志文件过大怎么办
- 哪里有免费的云服务器价格实惠(安全的美国云服务器哪里比较便宜?)
- display flex 布局(解决display:flex属性 justify-content: space-between换行后的排版问题)
- dede生成的路径有问题(dede查询列表中单独显示查到了多少条记录)
- 腾讯云主机可以挂游戏吗(云主机能挂网络游戏么?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9