X
PHP では、文字列の 2 番目と 3 番目の文字をどのように置き換えることができますstring
かsXXing
?
文字列の長さは 6 文字に固定されます。
ありがとう
それはあなたが何をしているかによります。
ほとんどの場合、次を使用します。
$string = "string";
$string[1] = "X";
$string[2] = "X";
これにより、$string が "sXXing" に設定されます。
substr_replace('string', 'XX', 1, 2);
しかし、そのようなカットを完全に行う方法が必要な場合は、エンコーディングに注意する必要があります。
$string が我很喜欢重庆の場合、出力は "我XX欢重庆" ではなく "�XX很喜欢" になります。
エンコードの問題を回避する「完璧な」方法は、PHP MultiByte String 拡張機能を使用することです。
そして、まだ実装されていないため、カスタム mb_substr_replace :
function mb_substr_replace($output, $replace, $posOpen, $posClose) {
return mb_substr($output, 0, $posOpen) . $replace . mb_substr($output, $posClose + 1);
}
次に、コード:
echo mb_substr_replace('我很喜欢重庆', 'XX', 1, 2);
我XX欢重庆をお見せします。
置換には、関数を使用します
$str = 'bar';
$str[1] = 'A';
echo $str; // prints bAr
または、ライブラリ関数 substr_replace を次のように使用できます。
$str = substr_replace($str,$char,$pos,1);
3位も同様
単純:
<?php
$str = "string";
$str[1] = $str[2] = "X";
echo $str;
?>
function mb_substr_replace($string, $replacement, $start, $length=0)
{
return mb_substr($string, 0, $start) . $replacement . mb_substr($string, $start+$length);
}
上記と同じですが、よりsubstr_replaceに似るように標準化されています( -substr-関数は通常、終了位置ではなく長さを取ります)