PHPでstr_shuffle()関数を使用し英数字の乱数を生成する

PHPでstr_shuffle()関数を使用し、英数字の乱数を生成してみます。

str_shuffle()関数は、文字列をランダムにシャッフルすることができますので、これを利用し、今回は英数字の乱数を生成します。

■環境

・Windows10

・XAMPP 8.0.6

・PHP Version 8.0.6

■str_shuffle()関数を使用し英数字の乱数を生成する

では、PHPでstr_shuffle()関数を使用し英数字の乱数を生成するスクリプトを書いていきます。

■コード

<html lang="ja">
<head>
<title>英数字の乱数を生成する</title>
</head>
<body>
<?php
$length = 10;
$data = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz1234567890";
echo substr(str_shuffle($data),0,$length);
?>
</body>
</html>

今回はlengthという変数を定義し、その中に数値を格納します。この数値は、英数字の乱数を生成する際の文字数となります。

次にdataという変数を定義し、その中に文字列(英語の大文字・小文字,数字)を格納します。

格納後、str_shuffle()関数を使用します。str_shuffle()の括弧内には、引数,パラメータとして、data変数を渡します。これでdata変数内の文字列がランダムにシャッフルされます。

シャッフル後、substr()関数を使用し、シャッフルされた文字列の一部を返すようにします。substr()関数の括弧内には、第1の引数,パラメータとして、str_shuffle()関数とdata変数を渡します。第2の引数,パラメータには、シャッフルされた文字列のどこから始めるかを指定するために、今回は「0」を渡します。第3の引数,パラメータには、シャッフルされた文字列の長さを指定するために、length変数を渡します。

これで、data変数内の文字列がランダムにシャッフルされて、文字列内の「0」からスタートし、「10」までの長さ(文字数)が返されます。返されたものをecho文で出力します。

■実行

では、このスクリプトを「generate_alphanumeric_random_numbers.php」という名前で保存し、実行させてみます。

実行させてみると、str_shuffle()関数とsubstr()関数を使用したことで、data変数内の文字列がランダムにシャッフルされ、指定した文字列の長さで、英数字の乱数を生成されることを確認できました。

コメント

タイトルとURLをコピーしました