• Home
  • 【簡単】文字を指定してLaravelでランダム文字列を生成する方法

【簡単】文字を指定してLaravelでランダム文字列を生成する方法

記事のサムネイル

Laravel とは

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 文字のランダムな文字列が返されます。

大まかな流れとしては

  1. str_repeat で指定した文字列(第一引数)を指定した回数(第二引数)繰り返す。
  2. str_shuffle で 1 で生成された文字列をシャッフルする。
  3. substr で指定した文字列(第一引数)の指定した文字数目(第二引数)から、指定文字数(第三引数)分抜き出す。

となります。

まとめ

いかがでしたでしょうか!

自分が実装する際に、ただランダムな文字列を生成する方法はいくらでも出てきたのですが、文字を指定してその中でのランダムな文字列を生成する方法がなかなか出てこなかったのでまとめてみました!

同じような実装内容で、詰まっている方のお力になれると幸いです!

また、分からない部分の質問も受け付けているので、コメントや DM 待ってます!

実装やエラーが解決できない場合

プログラミングの実装やエラーでどうしてもわからない場合はメンターに相談するのが一番です。

考えている、見えている範囲が狭くなり、解決から遠くに行って何時間も、何日も経っていることなんてよくある話です。

そういう時は聞ける先輩や、メンターに相談することが大事です。

僕にも相談可能なので気軽に相談してください。

ご相談はこちら
(Twitterのプロフィールへ飛びます)

OTHER ARTICLES

  • Web制作

  • Rails

railsでjsではなくrubyでtooltipの単位を設定するときの話

2024/08/20
  • Web制作

  • Rails

Railsにおけるクラスメソッドとインスタンスメソッドの違いについて

2024/05/30
  • Web制作

  • Docker

  • Rails

DockerでRails7 + PostgreSQL + esbuildの環境を構築する方法

2024/05/16
  • Web制作

  • Rails

  • Docker

Dockerで建てたrails7環境で「undefined method `devise' for 〜」が発生した話

2024/05/16
  • Web制作

  • Rails

Ruby on RailsのルーティングとRESTfulルート

2024/05/09
  • Web制作

  • Rails

Ruby on Railsにおけるresourceとresourcesの違い

2024/05/01