PHP自带的 strrev( ) 函数只可以反转英文,如果字符串中有中文就会产生乱码。
这里要用到 iconv 函数,iconv_strlen( ) 不会像 strlen( ) 一样把中文当做3个字符。
同理 iconv_substr( ) 也能很好的切割中文。
function strReverse($str1){
$str2 = '';
$len = iconv_strlen($str1);
for($i = $len - 1; $i > -1; $i--){
$str2 .= iconv_substr($str1,$i,1);
}
return $str2;
}
其实还有类似的mb_strlen( ) 等,原理大致都是要先进性GBK或者UTF8转码再计算。