在PHP中substr()函数和mb_substr()函数可以指定和截取字符串的一部分。
在本文中我们将详细的来讲解下如何使用 substr、mb_substr 截取字符串,以及substr()函数和mb_substr()函数有什么区别?
使用substr()函数截取字符
substr是一个可以获取部分指定字符串的函数。例如有字符串abcd。
如果指定起始位置为0,则可以从a中获取指定字符数的字符串,如果指定2则可以从c中获取指定字符数的字符串。
我们实际来看下如何使用substr。
<?php $str = "abcde"; echo substr($str,1); ?>
输出结果:
bcde
在上面的示例代码中,由于指定了 1 为起始位置,并且没有指定字符数,因此得到了从“b”到结尾的字符串。
<?php $str = "abcde" ; echo substr ($str , 1 , 3 ); ?>
输出结果
bcd
接下来我们将起始位置1指定为字符数3,并从字符串“absde”中获取中间的3个字符。
<?php $str = "AIUEO" ; echo substr ( $str , 1 , 3 ); ?>
需要注意的是即使使用相同的代码,如果字符串是中文,那么获取的字符会出现乱码。
使用mb_substr函数截取字符
mb_substr也是截取部分指定字符串的函数,但和substr有什么区别呢?
mb_substr除了指定起始位置和字符数外,还可以指定字符串的编码。
我们在处理中文字符串时可以使用mb_substr()。
<?php $str = "absde"; echo mb_substr($str,1,3); ?>
输出结果:
bcd
获取中文字符的方式
<?php $str = "你好啊哈哈哈"; echo mb_substr($str,1,3,"UTF-8"); ?>
输出结果
好啊哈