Laravel とは
Laravel とは、2011 年にリリースされた比較的新しい VMC モデルのフレームワークです。比較的新しいながら、PHP におけるフレームワークの中では、代表的なフレームワークとなっています。
基本的なランダム文字列を生成する方法
Laravel でランダム文字列を生成する方法としては以下があります。(以下に紹介する方法がすべてではないと思うので、見つけた際は随時追加していきます。)
- Str::random メソッドを使用する
Str::random メソッドを使用する
まず Str::random メソッドとは、引数で指定した数の長さのランダムな文字列を生成して返す Laravel のヘルパ関数です。
生成されるランダム文字列には
- 大文字(A ~ Z)
- 小文字(a ~ z)
- 数字(0 ~ 1)
が含まれています。
Str::random メソッドを使用してランダム文字列を生成するには、まず
use Illuminate\Support\Str;
を宣言する必要があります。
使い方は下記になります。
$sample = Str::random(8);
上記では、変数 sample に 8 文字のランダムな文字列が返されます。
使用可能な文字を指定してランダム文字列を生成する方法
文字を指定してランダム文字列を生成する方法は以下になります。
$sample = substr(str_shuffle(str_repeat(ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789, 8)), 0, 8)
上記では、変数 sample に大文字英数(A ~ Z)と数字(1 ~ 9)から生成された 8 文字のランダムな文字列が返されます。
大まかな流れとしては
- str_repeat で指定した文字列(第一引数)を指定した回数(第二引数)繰り返す。
- str_shuffle で 1 で生成された文字列をシャッフルする。
- substr で指定した文字列(第一引数)の指定した文字数目(第二引数)から、指定文字数(第三引数)分抜き出す。
となります。
まとめ
いかがでしたでしょうか!
自分が実装する際に、ただランダムな文字列を生成する方法はいくらでも出てきたのですが、文字を指定してその中でのランダムな文字列を生成する方法がなかなか出てこなかったのでまとめてみました!
同じような実装内容で、詰まっている方のお力になれると幸いです!
また、分からない部分の質問も受け付けているので、コメントや DM 待ってます!