Php用2个其他随机字符替换2个字符

时间:2013-03-12 16:04:40

标签: php

我想将一个字符串中的2个字符与另外两个字符交换。

开始字符串=“`bHello`!怎么`Qare`%你。”

Random string =“1234567890abcdefghijklmnopqrstuvwxyz!£$%^& @”

我如何交换`b`! `Q`%有随机的,所以它看起来像这样

结果结果字符串=“`4Hello` ^如何`$是`@you。”

到目前为止我已尝试过这个

到目前为止我试过了

$ out =“`vHow`!是`@you。'

$ patterns = array(“`1”,“`J”,“`2”,“`3”,“`4”,“`5”,“`6”,“`7”,“` ! “ ”`$“, ”`%“, ”`^“, ”`&安培;“, ”')“, ”`〜“, ”`#“, ”'@“, ”'q“,” `E “ ”`Y“, ”`T“, ”`p“, ”`J“, ”`K“, ”`升“, ”`M“, ”`X“, ”`v“,” `米 “ ”'Q“, ”`E“, ”`R“, ”`T“, ”`Y“, ”`P“, ”`G“, ”`K“, ”`L“,” `X”, “`V”);

$ pretest = array(“`1”,“`J”,“`2”,“`3”,“`4”,“`5”,“`6”,“`7”,“` ! “ ”`$“, ”`%“, ”`^“, ”`&安培;“, ”')“, ”`〜“, ”`#“, ”'@“, ”'q“,” `E “ ”`Y“, ”`T“, ”`p“, ”`J“, ”`K“, ”`升“, ”`M“, ”`X“, ”`v“,” `米 “ ”'Q“, ”`E“, ”`R“, ”`T“, ”`Y“, ”`P“, ”`G“, ”`K“, ”`L“,” `X”, “`V”);

$ tempstr = $ pretest [rand(0,strlen($ pretest)-1)];

$ substs =“`”。$ tempstr;

$ out = preg_replace($ patterns,$ substs,$ out);

但最终结果是

$ out =“`%如何'%'是'你'。

它只选择1个随机并将它们全部更改为那个。

1 个答案:

答案 0 :(得分:0)

<?php
function randomChar() { 
    $rand = "1234567890abcdefghijklmnopqrstuvwxyz";
    return substr($rand, rand(0, strlen($rand)), 1);  
} 

echo preg_replace_callback("/`./", 'randomChar', "`bHello `!how `Qare `%you.");