文字列の途中の文字を置き換えるにはどうすればよいですか?
例: fdsfdsfdsjkww
置き換える: f************w
例: Jin Ximin からポイントを減点する
置き換える: Deduct ***min
例: キム ソクミン s の減点
置換: ****s の減点
例: tt キム ソクミン s の減点
置換: t*****s
<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') { mb_internal_encoding($code); $len = mb_strlen($str); return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);
Replace ( string1 , start, string2,n,m )
<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') { mb_internal_encoding($code); $len = mb_strlen($str); return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);
コードが文字化けしているのはエンコーディングによって異なります。正しいエンコーディングを設定します
$string='fdsfdsfdsjkww';
echo substr($string ,0,1).'*****'.substr($string,$sLeng-1,1);
<?php$str ='tt扣分金锡民s';function hide_repalce($str, $code='utf-8') { mb_internal_encoding($code); $len = mb_strlen($str); return mb_substr($str, 0, 1) . str_repeat('*', $len - 2) . mb_substr($str, $len - 1, 1);}echo hide_repalce($str);
文字化けがありますがわかりますか?
utf8-encoding を使用している場合、ソース ファイルのエンコーディングと出力表示のエンコーディングは utf-8 を使用する必要があります
より簡単
$string='fdsfdsfdsjkww';echo substr_replace($string, str_repeat('*',strlen($string)-2), 1, strlen($string)-2);
注意してください長さの問題は、中国語と英語のバイトが異なるため、正しく計算されなければ文字化けが発生します
string
文字列を入力します。
交換用
交換用の弦です。
start
start が正の数の場合、置換は文字列の開始位置から開始されます。
start が負の数の場合、文字列の最後の開始位置から置換が開始されます。
length
このパラメータが設定されており、正の数値である場合、文字列内の置換された部分文字列の長さを表します。負の数に設定すると、文字列の末尾から置換される部分文字列の末尾までの文字数を表します。このパラメータが指定されていない場合、デフォルトは strlen( string ) (文字列の長さ) になります。もちろん、長さが 0 の場合、この関数の機能は文字列の開始位置に置換を挿入することです