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转码再计算。