您可以省略第三个参数以substr()
获取字符串的其余部分:
substr('abcdefg', 2) // returns "cdefg"
你不能这样做mb_substr()
:
mb_substr('abcdefg', 2, null, 'UTF-8'); // returns empty string
我只找到了奇怪和丑陋的解决方案。
将一个非常高的数字设置为长度:
$a = mb_substr('abcdefg', 2, 9999999999, 'UTF-8');
计算数量:
$a = mb_substr('abcdefg', 2, mb_strlen('abcdefg', 'UTF-8') - 2, 'UTF-8');
通过使用省略 charset 参数
mb_internal_encoding()
:$temp = mb_internal_encoding(); // prevent action at a distance
mb_internal_encoding('UTF-8');
$a = mb_substr('abcdefg', 2);
mb_internal_encoding($temp);
没有真正的解决方案吗?