2013-03-12 89 views
-4

我想用2個字符串替換2個字符。Php用2個其他隨機字符替換2個字符

Start string =「`bHello`!how`Qare`%you。」

隨機字符串= 「1234567890abcdefghijklmnopqrstuvwxyz!£$%^ @ &」

我怎麼換``b! `Q`%隨機的,所以它看起來像這樣

最終結果字符串=「`4Hello`^怎麼```是`@ you」。

我已經試過這到目前爲止

我試過到目前爲止

$ OUT = 「``vHow!是`@you。」 $ pattern = array(「1」,「J」,「2」,「3」,「4」,「5」,「6」,「7」,「 ````,``````````,``````,``````,``````````````` `E 「 」`Y「, 」`T「, 」`p「, 」`J「, 」`K「, 」`升「, 」`M「, 」`X「, 」`v「,」 `米 「 」'Q「, 」`E「, 」`R「, 」`T「, 」`Y「, 」`P「, 」`G「, 」`K「, 」`L「,」 `X」, 「`V」); $ pretest =數組(「1」,「J」,「2」,「3」,「4」,「5」,「6」,「7」,「 ````,``````````,``````,``````,``````````````` `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個隨機數並將它們全部更改爲該數字。

+3

所以你有什麼嘗試?或者你是否如此酷,以至於你期望別人爲你做所有事情? – 2013-03-12 16:06:08

+0

您要替換的字符列表中有2個以上的字符。你可以澄清,或修復格式? – Barmar 2013-03-12 16:08:03

+0

@ACoolGuy你在做什麼?這種做法只是混亂而毫無意義。至少是陣列方法。 – Jonast92 2013-03-12 16:09:34

回答

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

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

那種作品,但沒有顯示出於某種原因。 – 2013-03-12 16:48:09

相關問題