在php脚本中,如果遇到替换中文字符的需求时,虽然 str_replace 内置函数可以进行正常的替换,但为了程序的可靠性,还是建议打开php的 mb_string 扩展,并使用双字节可靠的 mb_ereg_replace 函数。

php mb_ereg_replace 函数替换中文字符的方法

注:在使用 mb_ereg_replace 函数之前,需要先打开php的 mb_string 扩展!

示例:

<?php
echo mb_ereg_replace("格式","新格式","PHP中文字符的格式替换方法!");
// 将PHP中文字符的新格式替换方法!

php 支持utf-8中文字符替换的方法

网上找到一个php可以100%支持uft-8中文字符串替换的方法,稍微改动了一下,亲测可用。

自定义函数:

/**
 * # utf8 中文字符串替换的函数
 * @param string $find 规定要查找的值
 * @param string $replace 规定替换的值
 * @param string $str 规定被搜索的字符串
 * 
 * @return string 返回替换的结果
 */
function utf8_str_replace($find,$replace,$str)
{
    $strpos = 0;
    $strstr = $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;
}

函数的使用:

<?php
echo utf8_str_replace('他','她','你问下他吃饭了么?');
// 你问下她吃饭了么?
echo utf8_str_replace('小明','笑笑','小明放学了!');
// 笑笑放学了!