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);
}

  

  

原文地址:https://www.cnblogs.com/oceanL/p/8360052.html