文字列の最初と最後に新しいランダム文字を生成する次の関数があります。
function random($string) {
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$shuffle_start = substr(str_shuffle($chars), 0, 6);
$shuffle_end = substr(str_shuffle($chars), 0, 6);
$str = chunk_split($string, 1, substr(str_shuffle($chars), 0, 5));
return $shuffle_start . $str . $shuffle_end;
}
ご覧のとおり$str
、文字列内の各文字の後に 5 つのランダムな文字を取得しようとしていますが、これには助けが必要です。現在のように、この関数はこれを出力します:
dYj9quhDk2T4eDk2T4lDk2T4lDk2T4oDk2T4KHjN6T
文字列は「hello」で、文字列の最初と最後にある 6 つのランダムな文字 (dYj9qu
とKHjN6T
) で覆われています。この文字列内の各文字のDk2T4
後に、各文字の後に繰り返し返されていることがわかります。これは私が望む方法ではありません!ランダムにしたいDk2T4
ので、文字列は次のようになります。
dYj9quhDk2T4eTft3bl7yjF4lac34vodkiY0KHjN6T
文字列から削除された文字列の最後の文字 (「hello」 - この場合dkiY0
は最後の文字列) も必要なので、次のようになります。
dYj9quhDk2T4eTft3bl7yjF4lac34voKHjN6T
この問題を解決するにはどうすればよいですか?