php 中文字符串反转【字符串】

场景:英文字符串反转 使用 方法  strrev($str)  ,但是中文字符串怎么反转呢?

代码

/**
 * 多字符 字符串反转
 * @param string $string 字符串
 * @param string $encoding 编码
 * php >= 7.4  否则需要实现 mb_str_split 多字符变成字符串
 */
function mb_strrev($string , $encoding = null){
    if(is_null($encoding)){
        $encoding = mb_internal_encoding();
    }
    // 把字符串变成数组
    $arr = mb_str_split($string , 1 ,$encoding);
    // 数组反转
    return implode('',array_reverse($arr));
}

输出 

var_dump(mb_strrev('你好 hello w阿斯利康大家坷拉就少得可怜ord!'));
// string(57) "!dro怜可得少就拉坷家大康利斯阿w olleh 好你"

引用: mb_str_split 实现方式

php中mb_str_split分割字符串为数组的函数介绍与使用以及低版本php函数实现_php split字符串分割字符串_豆子林的博客-CSDN博客mb_str_split将返回一个字符串数组,这是一个支持字符变长编码以及1、2、4字节字符定长编码版本的str_split()。 如果指定了length参数,则将字符串按指定的字符长度(而不是字节长度)拆分为块。 可以选择指定encoding参数,这样是很好的做法。mb_str_split函数将返回字符串数组。php8.0开始此函数在失败时不再返回false,而是返回空数组。_php split字符串分割字符串https://blog.csdn.net/llgde/article/details/131367251

附上代码: 

/**
 * 分割字符串
 */
if (!function_exists('mb_str_split')) {
    function mb_str_split($string, $split_length = 1, $encoding = null)
    {
        if (is_null($encoding)) {
            $encoding = mb_internal_encoding();
        }
 
        if ($split_length < 1) {
            return [];
        }
 
        $length = mb_strlen($string, $encoding);
        $parts = [];
        for ($i = 0; $i < $length; $i += $split_length) {
            $parts[] = mb_substr($string, $i, $split_length, $encoding);
        }
 
        return $parts;
    }
}

 

你可能感兴趣的:(php,开发语言)