PHP 100%支持UTF-8中文字符替换 ~ 学习分享

PHP内置的字符串处理函数,是以单字节形式处理,对中文字符截取,替换 会照成乱码,相信小伙伴们学习过程中都遇见过了!

需要处理中文字符串,我们可以使用mb_string扩展函数,官方手册:https://www.php.net/manual/zh/book.mbstring.php

但mb_string扩展函数里面没有替换函数,然后自己写了一个对utf-8编码的字符替换函数,函数内使用了mb_string扩展函数,所以要执行此函数需要先要打开mb_string扩展模块.

直接放代码吧:

/**
 * @param $str 规定被搜索的字符串
 * @param $find 规定要查找的值
 * @param $replace 规定替换的值
 * @return string 返回替换的结果
 */
function utf8_str_replace($str,$find,$replace){
    # 记录位置
    $strpos = 0;
    # 储存替换的字符串
    $strstr = $str;
    # $find在$str中查找到的次数
    $count = mb_substr_count($str,$find,"utf-8");
    # 遍历替换
    for ($i=0;$i<$count;$i++){
        # 获取当前查找到的字符位置
        $strpos = mb_strpos($strstr,$find,$strpos,"utf-8");
        # 获取查找的值的长度
        $chr_len = mb_strlen($find,"utf-8");
        # 截取字符前面部分
        $first_str = mb_substr($strstr,0,$strpos,"utf-8");
        # 截取字符后面部分
        $last_str = mb_substr($strstr,$strpos+$chr_len);
        # 拼接字符串
        $strstr = $first_str.$replace.$last_str;
        # 计算下次的位置
        $strpos+=mb_strlen($replace,"utf-8");
    }
    return $strstr;
}

咱来使用函数输出替换结果

echo utf8_str_replace("XX是世界上最好的语言,世界上最好的语言是XX","XX","php");

看呐!成功了~

 

 

欢迎大家来群里交流 Q群:140215071 

你可能感兴趣的:(PHP中文字符处理,PHP,PHP,str_replace,PHP中文字符替换,php替换字符串)