我想将一个字符串中的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个随机并将它们全部更改为那个。
答案 0 :(得分:0)
<?php
function randomChar() {
$rand = "1234567890abcdefghijklmnopqrstuvwxyz";
return substr($rand, rand(0, strlen($rand)), 1);
}
echo preg_replace_callback("/`./", 'randomChar', "`bHello `!how `Qare `%you.");