$str = "中華人民共和國"; $len = mb_strlen($str,'utf-8'); if($len>=6){ $str1 = mb_substr($str,0,2,'utf-8'); $str2 = mb_substr($str,$len-2,2,'utf-8'); } else{ $str1 = mb_substr($str,0,1,'utf-8'); $str2 = mb_substr($str,$len-1,1,'utf-8'); } $this->assign('str1',$str1); $this->assign('str2',$str2); $this->assign('str',$str1.'**'.$str2); $this->assign('strold',substr_replace($str,'**',2,2));
輸出結果為:
中華
和國
中華**和國
��**��人民共和國
substr_replace函數有些缺陷,中文替代會出現亂碼,使用mb_substr函數截取函數再連接字符串解決,雖然有點丑陋,但能解決問題。