3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Generate a random string, using a cryptographically secure * pseudorandom number generator (random_int) * * per https://stackoverflow.com/a/31107425 */ function get_random_string($length = 16, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') { $str = ''; $max = mb_strlen($keyspace, '8bit') - 1; for ($i = 0; $i < $length; ++$i) { $str .= $keyspace[random_int(0, $max)]; } return $str; } // Tests. echo 'Test 01: ' . get_random_string() . "\n"; echo get_random_string(2) . "\n"; echo get_random_string(32) . "\n"; echo get_random_string(16, '1234567') . "\n"; echo get_random_string(16, '123abcABC') . "\n"; echo get_random_string(16, 'ABC') . "\n"; echo get_random_string(16, '10') . "\n";
Output for 7.2.9
Test 01: FVqTMm3fOHi4RYz0 sE kS53GyRkt63r49WCkyvsFFWK7P3ExX9e 2361677677133411 2BBAcc1caBABAAaB AAAACAABCCBBBCBB 0000101111000000
Output for 7.2.8
Test 01: exx0ovNNMcym9Eqa 9x Ovrm56f0Fqsv77NJWhOhYqMN7CMmKbez 2734455526237526 b3CBA1Bbc3aCBaC3 CBABBABCABACCACB 1100000100110110
Output for 7.2.7
Test 01: rcVQXue2cyfdpDWi Gk EFmEXa0khMBZ6qmxwr5yd83YCoYJGlJK 1752473711656621 cA211BBcaaac2322 BCBCCABCABBABBCB 1001010110000000
Output for 7.2.6
Test 01: 6jw4xN5tNE9dUq6V EX o5kvYKvxuvRwl16AyHRluRFz6rL5Ct57 4572764654161363 3B1223ab21aCcCCc CAAAABBBCABCBABB 0001001100110111
Output for 7.2.5
Test 01: T5FpGYM49JdOioIE Dr n2LVTQWcJ7pEz8bjpGaXLSKFmmYodajL 7721746372553134 b1AbCcc1AC3c2CaB BCABCCCCABBAABAA 0111101011111001
Output for 7.2.4
Test 01: bvCrDSvUte2VRdq8 ax XGAPnwy3MgiEvN46vCcCNdsCFWCY7GsZ 5214147342745462 ccBAA32cb2BCB1CC CBCCBAACCAAACCAC 0010111100110000
Output for 7.2.3
Test 01: 3XFxKlwGXeS7MvRo 8f K6zsJmYc9KZyztYrRV2VI8CgsDDk7Ins 2322725755513223 3A1CBA332b1Cc2CA AAABCCABBBBACBBA 0010011100001001
Output for 7.2.2
Test 01: 71YvbelzDEJGCHjG dQ M4iuz4ngSTtNqXpFGGTShPTkOiJgYyIu 6655736324365137 bBAba2aaBaBbaAC1 BBACABACCCBBACCA 0110000001101110
Output for 7.2.1
Test 01: wepN3OPCCKVoMQbt gi 237H2ppbMEOqo0VPndvXP0yzSFPgle1R 1223746355433326 CcbCaB2aCB23321b ACAAACBCBBACBBBC 1111101101010111
Output for 7.2.0
Test 01: o9cfBPSAlWDbB7Nb WE Ffk3KegCqSF6ygdBPycV9pDZlmGFmlxw 5265246417237674 3caccaA3bbca23a2 CCBCBBBBBAABBABC 0010110110100100
Output for 7.1.21
Test 01: NKDwYZfG0cJ8tOjz Wb HpsNXTSGcpD2As8t6mGOWXvFXx15J7I3 7452572661645545 2CaccCABa2123aC3 AAACAACACBBBABAB 0001111100010100
Output for 7.1.20
Test 01: ERrJjwZGeovxuRXG E9 G3ggKrbRg2m4eQdTecCgziBZqxORxsXP 1527346777336475 2aA1AB21c32a2aac CBCBACBCBACBCCBB 0010000001001001
Output for 7.1.19
Test 01: Afp0PiHLPch7TuSv 8l 5sDeV0cHbYI9BlSUqQzoj9uBTNSvbFBy 5324612632427146 311cA1ccC3C1AaCa CACACCBCACCABCBB 1111101001000101
Output for 7.1.18
Test 01: Uybr4ZSzsuksDYFu iU HFMskq4fh8NEndgX8ZQ6fPcrltK2tks8 5212612433561352 bc3AAA2cacbBCbAc BBCACABCAABABABC 1011001101101111
Output for 7.1.17
Test 01: U6K2uetZP1e7UeDM nH tS8yqUflBISteOYgbhLgNpLmo8L1IVyX 4272272721126627 aBb23B3ac2a1Ab33 CBCCABCCCBCCCCAB 1110100101011001
Output for 7.1.16
Test 01: tqGVHwNQQTvBdp89 TR S9xMkWDgHHmg7VxtXBb3tXH9kcL8oVvx 3537613474117532 CbBB311CbA1ABAaa CBCAACBAACAABACB 0011001000100000
Output for 7.1.15
Test 01: TqdHCP0TfA3FEYbU mg DJr2Abmdk55wf0v6QsMW7wRC46Igi8HQ 2116146764267546 CC13AbAA3CBAbaAA AAAAABABCACBAACB 0000011001110101
Output for 7.1.14
Test 01: PuCBE1kzLnjed1aW m1 WBb1rVDEt3cK3ItYM6g93QNhGc1EpivD 1562437545454461 31a132Ca3baBB1bC ABACCBBACCCBABBC 0110010000110001
Output for 7.1.13
Test 01: vSS6OwFmmmiAbqpr Zt bReE11W3GlwQwvxuvZ9yKSdGFEeqQk8Y 7414764223412174 aac3ab13C3aa11bB ABABAAAACCBAABBB 0110101100100011
Output for 7.1.12
Test 01: ySgmeIKtVabLFx5F RA DShXHTmML8dXStMFzMvH2TnZouJRY5io 4453222435733221 aB1ABbaa1aC111bB ABABACACBACCBCAB 0001100100001010
Output for 7.1.11
Test 01: 33VH95lxaFaLkkXq 41 zBg8zNCHPvWPrYmaeEcva15Bjmc6K6UH 1553267657755523 21b3cAbC2bBB21c3 BABAABBABABBCBAA 1001101111011101
Output for 7.1.10
Test 01: vi0K2UblwW4ljfYk lt LKoYdI0IYzVXPrwqcWa9OqQpBoOy8rAN 5432721512334772 CaAbA1C33B3b2C3b BAACBBCCCBBAAACA 1010010100010001
Output for 7.1.9
Test 01: t6NTPBSeL0yLJRCu Lo z4JOmNFYxo1n9gG4wTW2vDhn0vqf1lR4 2625542724511444 3a3AAA1a1cbbACaC AACCCCACCBAABACC 0010100100100011
Output for 7.1.8
Test 01: X4lJEuZXv4Batpr1 AE aUp0usyeN1hDW0rIkTGkeIF7sfaSnDTH 6231126547265317 233acCA3C11aCcAA CBBCCAACCBAABCAA 1101110000111100
Output for 7.1.7
Test 01: SPpB6RE95ktAYE0F Hx BwvQkYkrKdoiHFcAKWOe7j6PsJpTwfp4 6651763667661347 3B13Bc1Ca21BA33b BBBBBAAABCAACBAB 1010110001001000
Output for 7.1.6
Test 01: YfenjIFeZqdzchTr d5 xjY50TeVhznpK4KUhfV5ImD8F4SEaRYO 7731337744514756 22c3BcCCca2aBcb3 CABBCBCACBABCCCB 0111001110001001
Output for 7.1.5
Test 01: OZ9vozlLad3qyF1E xU BFiC0ycoVi8bshq1E8CTtOKRGLW6V3uQ 7124516416144662 b233313aA33bC1Ca BCAACAABBBABCABB 1010100011000100
Output for 7.1.4
Test 01: gSxbzcX8gGZPY3fQ dc QMdwo0rxrRLxaSAdMjcQYaDWHnAWngCq 7415753317616176 bbAB1C2caa2BAc2A AAAABCCBCABBCCAC 1001010100000101
Output for 7.1.3
Test 01: HUJiQPa5WKFPVQUa 0I V4XJkgC6UCePfRckXZrxKWXGwRweZpsK 6341754552536652 1BbbbaA2cAa2CCC1 AACBBCACBACBCACC 1100011100000110
Output for 7.1.2
Test 01: bUKbM8kFPHZsCnsK Sk J6aYho7O6Y1sW8pqLFMBSo9RIl5Ssb3P 3713377254612735 cbAB2AacAc3caA12 BBBCCBCCAACCBBCB 0001110100110110
Output for 7.1.1
Test 01: 2ksnsMR1pRXGThyg Xu ZAjnWPXxQqhTdktc604PldkCVOX2czFI 1554242221645776 32Cb2cBAc2cbCa2A BBAACCCABCBAAAAB 0011000011011111
Output for 7.1.0
Test 01: iALfWNT46gm3IaA9 fI UzY4zo747VPkIDsOyfse2IPX1TlbC7sl 1254547362414141 BaAcAB31ABC1ABBa ACCBABAAAABACBBC 0001010100111000

preferences:
93.01 ms | 401 KiB | 37 Q