/** * 使用$replace替換字符串的中間部分 */ function replaceCenterWithChar($str, $replace = "*", $leftLen = 2, $rightLen = 2, $replaceLen = 3) { $length = mb_strlen($str, "utf-8"); if ($length <= 1) { return $str; } elseif ($length == 2) { return mb_substr($str, 0, 1, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, 1, 1, "utf-8"); } elseif ($length < $leftLen) { return $str; } elseif ($length == $leftLen) { return mb_substr($str, 0, $leftLen - 1, "utf-8").($replace, $replaceLen).mb_substr($str, $length - 1, 1, "utf-8");
} elseif ($length < ($leftLen+$rightLen)) { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $leftLen, $length - $leftLen, "utf-8"); } elseif ($length > $rightLen) { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $length - $rightLen, $rightLen, "utf-8"); } else { return mb_substr($str, 0, $leftLen, "utf-8").str_repeat($replace, $replaceLen).mb_substr($str, $length - $leftLen, $rightLen, "utf-8"); } }
mb_strlen — 獲取字符串的長度
mb_substr ( string $str , int $start , int $length = NULL , string $encoding = mb_internal_encoding() ) : string 根據字符數執行一個多字節安全的 substr() 操作。 位置是從 str 的開始位置進行計數。 第一個字符的位置是 0。第二個字符的位置是 1,以此類推。
str_repeat() 函數把字符串重復指定的次數。 str_repeat(string,repeat) echo str_repeat("Shanghai ",5); Shanghai Shanghai Shanghai Shanghai Shanghai