使用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');
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);
没有真正的解决方案吗?
最佳答案
更改日志将其显示为版本5.4.8(2012年10月18日)中的错误修复。
http://us.php.net/ChangeLog-5.php
这也是到拉取请求线程的链接:https://github.com/php/php-src/pull/133