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

时间:2015-05-28 14:05:50

标签: php

我正在尝试用匹配的字母替换字符串中的字母或字母,但我希望它是随机的。

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

以下是我将在下面更改的一些字母示例 s = $o = 0i = l

我正在尝试随机替换上面那个字符串中的字母,输出如下所示。这将是随机的,并且不需要随机改变所有字母,与上面的字母匹配。

输出示例

This is rand0m text in this $tring.

Thi$ is random text in this string.

我将如何在PHP中执行此操作?

2 个答案:

答案 0 :(得分:1)

这样的东西
$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);
}

Demo

答案 1 :(得分:1)

不能再比这更随机了。添加到数组$ 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;