php实现字符串翻转
php实现字符串翻转你可能首先想到的是php内置函数 strrev();
从运行结果可以看出strrev翻转字符串中如果有中文,就会返回乱码。
所以这里一定要考虑字符集编码问题。
<?php function str_rev($str){ if(!is_string($str) || !mb_check_encoding($str,"UTF-8")){ return ("字符串编码类型不正确"); } $len = mb_strlen($str,"UTF-8"); $new_str = ''; for($i=$len-1;$i>=0;$i--){ $new_str .= mb_substr($str,$i,1,"UTF-8"); } return $new_str; } echo str_rev("我们是中国人haha"); //输出ahah人国中是们我 function str_rev_two($str){ //判断输入的是不是utf8类型的字符,否则退出 f(!is_string($str) || !mb_check_encoding($str,'UTF-8')){ exit("输入类型不是UTF8类型的字符串"); } $len = mb_strlen($str,"UTF-8"); $arr = array(); for($i=0;$i<=$len;$i++){ $arr[] = mb_substr($str,$i,1,"UTF-8"); } //翻转数组 krsort($arr); return implode($arr); }