さまざまなサービスでユーザー登録時などに使えるパスワードを自動生成する方法はいくつかあります。しっかりしたライブラリもあるとは思いますが、ここでは手作りで英数字(大文字・小文字)を組み合わせてランダムにパスワードを生成するコードの例を紹介します。
仕組みは簡単で、大文字と小文字のアルファベットと0から9までの数字を配列に格納してシャッフル(ランダム順に並べ替え)して、先頭の8文字を取得しています。
<?php $num = 8; // パスワードの文字数 $ar1 = range('a', 'z'); // アルファベット小文字を配列に $ar2 = range('A', 'Z'); // アルファベット大文字を配列に $ar3 = range(0, 9); // 数字を配列に $ar_all = array_merge($ar1, $ar2, $ar3); // すべて結合 shuffle($ar_all); // ランダム順にシャッフル echo substr(implode($ar_all), 0, $num); // 先頭の8文字 ?>
○実行結果
EbJtvsUT
ふわっと仕上げです。「記号も使いたい」など細かい希望もあると思いますので、あとは自由に調整してください。