虽然大树的网站使用 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():分别是移除左侧、右侧、两侧的空白字符或其他字符。
更多的关于字符串用法的话,建议直接去官方网站进行查看学习,或者一些教程网查看学习,我们一起加油吧~