[PHP] 字符串的几个基本函数

PHP 做棵大树 5年前 (2019-05-09) 2222次浏览 0个评论
文章目录[隐藏]

虽然大树的网站使用 PHP 搭建的,但其实呢,我对于 PHP 并不是十分的熟呢。 只是简单的懂一些 PHP 的皮毛,会一些基本的东西吧~
这不,这学期学校开了 PHP 这门课,大树正在努力的去学,争取早日修成正果!!

呐,标题说了,要说一下 PHP 中字符串 String 的基本函数方法,那咱就不能跑题是吧? 这里就简单说一下 PHP 中字符串几个简单又常用的函数方法吧!

strlen() 和 mb_strlen() 函数

我们看这两个函数的名字就知道,他们都是用来计算字符串长度的,那他俩之间有什么不同呢??我们先来看一段代码:

header("Content-type: text/html; charset=utf-8");
$str = "友谊地久天长";
echo $str . "<br>";
echo strlen($str);

我们通过访问页面,可以得到结果,结果是 18,大家都疑惑了:诶,这不是六个字吗?怎么回事 18 呢?一个中文占两个字节,也该是 12 的啊!。那为什么是 18 呢?

PHP内置的字符串长度函数strlen()是无法正确处理中文字符串的,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen 得到的值是汉字个数的2 倍,而在UTF-8编码下,一个汉字占3 个字节。所以 6*3=18 了。

那我们怎么能拿到正确的长度呢? 这就要说到 mb_strlen() 函数了

header("Content-type: text/html; charset=utf-8");
$str = "友谊地久天长";
echo $str . "<br>";
echo mb_strlen($str, 'utf-8');

我们看到,和上边第一段的代码中 strlen() 差了一个参数,第二个参数,也正是指定编码格式的参数,通过指定编码格式,函数就可以直接进行对应的转换了!

不过如果你去菜鸟教程上看的话,你会发现在 PHP String 函数页面并没有这个函数! 这是因为mb_strlen 并不是 PHP 核心函数,使用前需要确保在 php.ini 中加载了 php_mbstring.dll即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题

substr() 和 mb_substr() 函数

这两个就是字符串截取的函数了,当然通过上边的那两个栗子,我们也就知道这两个的区别咯。

首先先说一下这两个的语法结构吧: substr(string,start,length) 其中 第一个参数是要进行截取的字符串变量,第二个则是指定开始的下标,第三个则是指定截取的长度,而 mb_substr() 则是在最后又加上了一个用于指定 编码类型的参数,最后一个参数也可省略不写,它的初衷就是进行中文字符串的截取

在我们截取字符串的时候,如果截取英文的,两个用哪个都是一切都好;但是 substr() 截取中文则会出现乱码的情况,即使是将页面编码已经设置为了 'utf-8' 的模式,你截出来的中文还是会变成小黑块。那这个时候我们就要用到 mb_substr() 函数了!

header("Content-type: text/html; charset=utf-8");
$str = "友谊地久天长";
echo substr($str, $i, 1);
echo mb_substr($str, $i, 1, 'utf-8');

这就是两个函数用法的区别,另外就是 utf-8 也可以省略不写。

再简单列举几个常用的吧,就不再进行仔细的说明了:

explode(separator,string,limit) :把字符串打散为数组。

implode(separator,array): 返回一个由数组元素组合成的字符串。

ltrim()、rtrim()、trim():分别是移除左侧、右侧、两侧的空白字符或其他字符。

更多的关于字符串用法的话,建议直接去官方网站进行查看学习,或者一些教程网查看学习,我们一起加油吧~


做棵大树 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明[PHP] 字符串的几个基本函数
喜欢 (4)
[欢迎投币]
分享 (0)
关于作者:
一个整天无所事事的,有时候忽然热血的孩子
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址