2

XPHP では、文字列の 2 番目と 3 番目の文字をどのように置き換えることができますstringsXXing?

文字列の長さは 6 文字に固定されます。

ありがとう

4

4 に答える 4

4

それはあなたが何をしているかによります。

ほとんどの場合、次を使用します。

$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欢重庆をお見せします。

于 2012-09-09T14:17:20.127 に答える
1

置換には、関数を使用します

$str    = 'bar';
$str[1] = 'A';
echo $str; // prints bAr

または、ライブラリ関数 substr_replace を次のように使用できます。

$str = substr_replace($str,$char,$pos,1);

3位も同様

于 2012-09-09T13:58:06.820 に答える
1

単純:

<?php
$str = "string";
$str[1] = $str[2] = "X";
echo $str;
?>
于 2012-09-09T13:55:21.383 に答える
1
function mb_substr_replace($string, $replacement, $start, $length=0)
{
    return mb_substr($string, 0, $start) . $replacement . mb_substr($string, $start+$length);
}

上記と同じですが、よりsubstr_replaceに似るように標準化されています( -substr-関数は通常、終了位置ではなく長さを取ります)

于 2012-10-26T10:29:25.570 に答える