Php 用匹配的字母替换字符串中的随机字母

Php 用匹配的字母替换字符串中的随机字母,php,Php,我试图用匹配的字母替换字符串中的一个或多个字母,但我希望它是随机的 $string=“这是此字符串中的随机文本。” 下面是几个我想修改的字母示例 s=$,o=0,i=l 我尝试随机替换上面字符串中的字母,输出如下所示。这将是完全随机的,不需要改变所有的字母,只是随机匹配上面的几个字母 输出示例 这是$tring中的文本。 Thi$是此字符串中的随机文本。 我如何在PHP中实现这一点?类似的东西怎么样 $string = "This is random text in this string.";

我试图用匹配的字母替换字符串中的一个或多个字母,但我希望它是随机的

$string=“这是此字符串中的随机文本。”

下面是几个我想修改的字母示例
s=$
o=0
i=l

我尝试随机替换上面字符串中的字母,输出如下所示。这将是完全随机的,不需要改变所有的字母,只是随机匹配上面的几个字母

输出示例

这是$tring中的文本。

Thi$是此字符串中的随机文本。


我如何在PHP中实现这一点?

类似的东西怎么样

$string = "This is random text in this string.";

$replace = array('s' => '$', 'o' => '0', 'i' => '1');
foreach(array_rand($replace, (count($replace)/2)+1) as $key) {
    $string = str_replace($key, $replace[$key], $string);
}

.

再也找不到比这更随机的了。添加到数组$a以获得更多替换字符

$str = 'This is random text in this string.';
$str2 = '';

function repl($char){
    $arr = array(
        's' => '$',
        't' => 'T'
    );

    foreach($arr as $key=>$a){
        if($char == $key) return $a;
    }
    return $char;
}


foreach(str_split($str) as $char){
    if(!rand(0, 9))     $str2 .= repl($char);
    else                $str2 .= $char;

}

echo $str."\n";
echo $str2;

你试过什么?可能只是使用str_replace:@Mike我不想替换所有事件。就几个,哪几个?你怎么决定?如果是随机的,那么有多少个呢?我在stackoverflow上找到了几个例子,但它们所做的只是用预设的字母随机替换字母,而不是用匹配的字母替换。如果所选的随机字母没有替换字母,则可以忽略它而不替换它@TimesPlinder是正确的。获取为foreach()提供的
无效参数。
。抱歉,我无法理解您要执行的操作。你能解释得更清楚些吗?很高兴听你这么说。如果你还需要什么,请ask@chillers您也可以通过混淆rand(0,1)值来更改随机性,正数将更改字符,负数不会更改字符,例如rand(-8,1)这意味着90%的字符没有被改变。我尝试了-8,它几乎每次都会改变所有的字母。我甚至尝试了+数字,似乎它想在每个输出负载上都改变它们。现在效果很好。非常感谢。