2

在 PHP 中,如何用Xso替换字符串string的第二个和第三个字符sXXing

字符串的长度将固定为六个字符。

谢谢

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 extension

还有一个自定义的 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

简单的:

<?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 回答
1

对于替换,使用函数

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

或者您可以将库函数 substr_replace 用作:

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

同样对于第三名

于 2012-09-09T13:58:06.820 回答