替换字符串中的字符位置

时间:2012-09-09 13:50:22

标签: php

在PHP中,如何用X替换字符串的第二个和第三个字符,以便string成为sXXing

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

由于

4 个答案:

答案 0 :(得分: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欢重庆。

答案 1 :(得分:1)

简单:

<?php
$str = "string";
$str[1] = $str[2] = "X";
echo $str;
?>

答案 2 :(得分:1)

要更换,请使用功能

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

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

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

类似于第三名

答案 3 :(得分: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 - 函数通常采用长度,而不是结束位置)