Skip to main content

Str クラスとは

Illuminate\Support\Str クラスは、文字列操作のための豊富なメソッドを提供します。PHPの標準文字列関数を個別に呼ぶ代わりに、統一されたインターフェースで直感的に文字列を処理できます。 Laravelの文字列操作には2つのスタイルがあります。
  • 静的メソッドスタイル: Str::slug($title, '-') — 単発の操作に向いています
  • Fluentスタイル(メソッドチェーン): Str::of($title)->slug('-')->limit(50) — 複数の操作をつなげて書けます
str() グローバルヘルパー関数は Str::of() と同等です。str('hello')->upper() のように書けます。

ケース変換

文字列のケース(大文字・小文字・記法)を変換するメソッドです。データベースのカラム名やAPIレスポンスのキー変換でよく使います。

Str::camel() / Str::snake() / Str::kebab() / Str::studly()

Str::lower() / Str::upper() / Str::title()

スラッグとURL

Str::slug() — URLフレンドリーなスラッグを生成

記事やページのURLを生成するときに必須のメソッドです。スペースや特殊文字を変換し、URLに安全な文字列を作ります。
日本語を含む場合はスラッグが空になることがあります。日本語のスラッグを使いたい場合は、別途ローマ字変換ライブラリを組み合わせるか、IDやタイムスタンプをURLに使うことを検討してください。

Str::of() でスラッグ生成からバリデーションまで一括処理

文字列の切り詰め

Str::limit() — 文字数で切り詰める

記事の本文やコメントを一覧表示するときにプレビューテキストを生成するメソッドです。

Str::words() — 単語数で切り詰める

文字列の検索と確認

Str::contains() — 文字列を含むか確認

Str::startsWith() / Str::endsWith()

Str::is() — ワイルドカードパターンマッチ

文字列の変換と置換

Str::replace() — 文字列を置換

Str::replaceArray() — 配列で順番に置換

Str::replaceMatches() — 正規表現で置換

Str::remove() — 文字列を削除

Str::squish() — 余分な空白を除去

文字列の前後操作

Str::before() / Str::after()

Str::between() — 2つの文字列の間を取得

Str::start() / Str::finish() — 特定文字で始まる・終わるようにする

すでにその文字で始まっていれば追加しません(二重化しない)。

Str::chopStart() / Str::chopEnd() — 特定の接頭辞・接尾辞を除去

マスキングとセキュリティ

Str::mask() — 文字列をマスクする

メールアドレスや電話番号の一部を隠す処理に使います。

Str::excerpt() — 文脈付きで文字列を抜き出す

検索結果のスニペット表示などに使います。

ランダム文字列と識別子

Str::random() — ランダム文字列を生成

トークンやパスワードのリセット用のキーを生成するときに使います。

Str::uuid() / Str::ulid() — UUID・ULID生成

Str::password() — セキュアなパスワード生成

Str::counted() — 数量付きの単数・複数形

数値に応じて単数・複数形に変換し、フォーマットされた数値と一緒に返します。
Fluent スタイルでも同様に使えます。
UIでの件数表示(「1件」「2件以上」の使い分け)を英語で行う場合に便利です。カンマ区切りのフォーマットは自動で適用されます。

Fluent Strings(メソッドチェーン)

Str::of() または str() で始めると、Stringable インスタンスが返り、メソッドをチェーンできます。最終的に文字列として使いたい場合は (string) でキャストするか、文字列コンテキストで使います。

実用的なメソッドチェーンの例

ブログ記事のスラッグ生成
URLからドメインを抽出
ユーザー入力のサニタイズ
クラス名からファイルパスを生成

条件付きメソッドチェーン(when()

pipe() — 任意のコールバックを挟む

Str::of() で使える主要メソッド一覧

Fluent Strings で使えるメソッドは静的メソッドとほぼ同じセットです。以下は代表的なものです。

まとめ

静的メソッドを使う場面:
  • 1〜2回の変換だけでよい場合
  • シンプルで読みやすいコード
Fluent(Str::of)を使う場面:
  • 3つ以上の変換をまとめて行う場合
  • 条件分岐(when())を含む場合
  • 処理の流れを上から下に読めるようにしたい場合
PHPの strtolower(), substr(), str_replace() などの標準関数の代わりに Str クラスを使うことで:
  • マルチバイト文字(日本語)を安全に扱える(mb_* 関数を内部で使用)
  • メソッドチェーンで処理をまとめられる
  • 引数の順序を覚えなくてよい(一貫したインターフェース)
  • Laravelのコードスタイルに統一できる
最終更新日 2026年7月9日