如何在PHP中将字符串除最后一个字符外的所有字符转为大写
解决PHP字符串除最后一个字符外转大写的问题
你的原代码存在参数错误:mb_substr的第三个参数需要是截取长度,但你传入了strtolower($str)(字符串),这会导致函数无法正确工作。下面是多字节安全的正确实现:
$str = "Hello"; $strLength = mb_strlen($str); // 处理字符串长度大于1的情况,避免长度为1时出现截取异常 if ($strLength > 1) { // 截取除最后一个字符外的部分并转大写,拼接最后一个字符 $result = mb_strtoupper(mb_substr($str, 0, $strLength - 1)) . mb_substr($str, -1); } else { // 字符串长度为1时直接返回原字符串(或按需转大写) $result = $str; } echo $result; // 输出 HEllo
关键说明:
- 使用
mb_strlen和mb_substr而非strlen/substr,确保对中文、特殊多字节字符的处理正确 mb_substr($str, -1)是获取字符串最后一个字符的简洁写法- 增加长度判断,避免当字符串只有1个字符时出现无效截取
内容的提问来源于stack exchange,提问作者CometZ
相关产品推荐
相关产品推荐

