2013.06.24
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
「fuelphp」は「few得るphp」だと誰が言ったんだ!?
・・・よく考えたら誰も言ってませんでした。
お世話になっております、ミネックです。
今回はfuelphpで、パスワード用のランダムな文字列を作成してみようと思います。
実はfuelphpには、すでにその機能があります。
$pass = Str::random("alnum", 16);
基本的には↑でOK。
ランダムな16桁の英数(大文字小文字区別)が作られます。
お気付きの通り、”alnum”となっているところを変えることで、色んなタイプのランダム文字列を生成できます。
そしてさらにお気付きの通り、数字の部分(↑では16のとこ)に任意の数字を入れることで、桁数をいじれます。
最高ですね!
でも少しだけ不満が。
16桁に設定してる時はそうでもないんですが、10桁ぐらいだと、
生成される文字列に数字が含まれないことが結構あります。
はい、今回いじってみたのはこの部分です。
コード
あんまり引っ張っても、意味が無いので以下そのコード。
//パスワードの文字数
$pass_len = 10;
//パスワードに含まれる数字の数
$num_len = mt_rand(1,4);
//パスワードに含まれるアルファベットの数
$al_len = $pass_len - $num_len;
$num = Str::random("numeric", $num_len);
$al = Str::random("alpha", $al_len);
//文字列をシャッフル
$res = str_shuffle($num.$al);
これで、数字が必ず入ってきます☆
パスワードに含まれる数字の数はお好みで。