其实就是strlen(获取单个字符编码)和mb_strlen(获取字符个数)的区别,要用同一个系列的
$str = "黄石的孩子";
mb_substr($str, 0, mb_strrpos($str, ‘孩子‘))
或者
substr($str, 0, strrpos($str, ‘孩子‘));
https://www.php.net/strlen/
https://www.php.net/manual/zh/function.mb-strlen.php
strlen和mb_strlen都是用于获取字符串长度的,但是两者获取字符串的长度不同:
1、strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节码编码,如gbk和utf8,使用strlen得到的不是字符的个数,而是该字符的总字节数;
2、mb_strlen获取其字符个数,使用mb_strlen要注意两点,一是要开启mbstring扩展,二是要指定字符集。
eg:
//当前页面是utf8编码
$str = ‘中文89PHP‘;
echo strlen($str); //中文+数字+英文:6 + 2 + 3 = 11
echo mb_strlen($str, ‘gbk‘); //中文+数字+英文:3 + 2 + 3 = 8
echo mb_strlen($str, ‘utf8‘); //中文+数字+英文:2 + 2 + 3 = 7