はじめに

Laravel には文字列値を操作するためのさまざまな関数が含まれています。これらの関数の多くはフレームワーク自体によって使用されますが、便利だと感じた場合は自分のアプリケーションで自由に使用できます。

利用可能なメソッド

文字列

__ class_basename e preg_replace_array Str::after Str::afterLast Str::apa Str::ascii Str::before Str::beforeLast Str::between Str::betweenFirst Str::camel Str::charAt Str::chopStart Str::chopEnd Str::contains Str::containsAll Str::deduplicate Str::endsWith Str::excerpt Str::finish Str::headline Str::inlineMarkdown Str::is Str::isAscii Str::isJson Str::isUlid Str::isUrl Str::isUuid Str::kebab Str::lcfirst Str::length Str::limit Str::lower Str::markdown Str::mask Str::orderedUuid Str::padBoth Str::padLeft Str::padRight Str::password Str::plural Str::pluralStudly Str::position Str::random Str::remove Str::repeat Str::replace Str::replaceArray Str::replaceFirst Str::replaceLast Str::replaceMatches Str::replaceStart Str::replaceEnd Str::reverse Str::singular Str::slug Str::snake Str::squish Str::start Str::startsWith Str::studly Str::substr Str::substrCount Str::substrReplace Str::swap Str::take Str::title Str::toBase64 Str::toHtmlString Str::transliterate Str::trim Str::ltrim Str::rtrim Str::ucfirst Str::ucsplit Str::upper Str::ulid Str::unwrap Str::uuid Str::wordCount Str::wordWrap Str::words Str::wrap str trans trans_choice

流暢な文字列

after afterLast apa append ascii basename before beforeLast between betweenFirst camel charAt classBasename chopStart chopEnd contains containsAll deduplicate dirname endsWith exactly excerpt explode finish headline inlineMarkdown is isAscii isEmpty isNotEmpty isJson isUlid isUrl isUuid kebab lcfirst length limit lower markdown mask match matchAll isMatch newLine padBoth padLeft padRight pipe plural position prepend remove repeat replace replaceArray replaceFirst replaceLast replaceMatches replaceStart replaceEnd scan singular slug snake split squish start startsWith stripTags studly substr substrReplace swap take tap test title toBase64 transliterate trim ltrim rtrim ucfirst ucsplit unwrap upper when whenContains whenContainsAll whenEmpty whenNotEmpty whenStartsWith whenEndsWith whenExactly whenNotExactly whenIs whenIsAscii whenIsUlid whenIsUuid whenTest wordCount words wrap

文字列

__()

`````````` 関数は、指定された翻訳文字列または翻訳キーを 言語ファイル を使用して翻訳します:

  1. echo __('Welcome to our application');
  2. echo __('messages.welcome');

指定された翻訳文字列またはキーが存在しない場合、関数は指定された値を返します。したがって、上記の例を使用すると、 関数はその翻訳キーが存在しない場合、messages.welcome を返します。

class_basename()

class_basename 関数は、指定されたクラスのクラス名をクラスの名前空間を削除して返します:

  1. $class = class_basename('Foo\Bar\Baz');
  2. // Baz

e()

e 関数は、デフォルトで double_encode オプションが true に設定された状態で PHP の htmlspecialchars 関数を実行します:

  1. echo e('<html>foo</html>');
  2. // &lt;html&gt;foo&lt;/html&gt;

preg_replace_array()

preg_replace_array 関数は、配列を使用して文字列内の指定されたパターンを順次置き換えます:

  1. $string = 'The event will take place between :start and :end';
  2. $replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
  3. // The event will take place between 8:30 and 9:00

Str::after()

Str::after メソッドは、文字列内の指定された値の後のすべてを返します。値が文字列内に存在しない場合、全体の文字列が返されます:

  1. use Illuminate\Support\Str;
  2. $slice = Str::after('This is my name', 'This is');
  3. // ' my name'

Str::afterLast()

Str::afterLast メソッドは、文字列内の指定された値の最後の出現の後のすべてを返します。値が文字列内に存在しない場合、全体の文字列が返されます:

  1. use Illuminate\Support\Str;
  2. $slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
  3. // 'Controller'

Str::apa()

Str::apa メソッドは、指定された文字列を APA ガイドライン に従ってタイトルケースに変換します:

  1. use Illuminate\Support\Str;
  2. $title = Str::apa('Creating A Project');
  3. // 'Creating a Project'

Str::ascii()

Str::ascii メソッドは、文字列を ASCII 値に音訳しようとします:

  1. use Illuminate\Support\Str;
  2. $slice = Str::ascii('û');
  3. // 'u'

Str::before()

Str::before メソッドは、文字列内の指定された値の前のすべてを返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::before('This is my name', 'my name');
  3. // 'This is '

Str::beforeLast()

Str::beforeLast メソッドは、文字列内の指定された値の最後の出現の前のすべてを返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::beforeLast('This is my name', 'is');
  3. // 'This '

Str::between()

Str::between メソッドは、2 つの値の間の文字列の部分を返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::between('This is my name', 'This', 'name');
  3. // ' is my '

Str::betweenFirst()

Str::betweenFirst メソッドは、2 つの値の間の最小の部分を返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::betweenFirst('[a] bc [d]', '[', ']');
  3. // 'a'

Str::camel()

Str::camel メソッドは、指定された文字列を camelCase に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::camel('foo_bar');
  3. // 'fooBar'

Str::charAt()

Str::charAt メソッドは、指定されたインデックスの文字を返します。インデックスが範囲外の場合、false が返されます:

  1. use Illuminate\Support\Str;
  2. $character = Str::charAt('This is my name.', 6);
  3. // 's'

Str::chopStart()

Str::chopStart メソッドは、指定された値が文字列の先頭に出現する場合のみ、その最初の出現を削除します:

  1. use Illuminate\Support\Str;
  2. $url = Str::chopStart('https://laravel.com', 'https://');
  3. // 'laravel.com'

第二引数として配列を渡すこともできます。文字列が配列内のいずれかの値で始まる場合、その値が文字列から削除されます:

  1. use Illuminate\Support\Str;
  2. $url = Str::chopStart('http://laravel.com', ['https://', 'http://']);
  3. // 'laravel.com'

Str::chopEnd()

Str::chopEnd メソッドは、指定された値が文字列の末尾に出現する場合のみ、その最後の出現を削除します:

  1. use Illuminate\Support\Str;
  2. $url = Str::chopEnd('app/Models/Photograph.php', '.php');
  3. // 'app/Models/Photograph'

第二引数として配列を渡すこともできます。文字列が配列内のいずれかの値で終わる場合、その値が文字列から削除されます:

  1. use Illuminate\Support\Str;
  2. $url = Str::chopEnd('laravel.com/index.php', ['/index.html', '/index.php']);
  3. // 'laravel.com'

Str::contains()

Str::contains メソッドは、指定された文字列が指定された値を含むかどうかを判断します。デフォルトでは、このメソッドは大文字と小文字を区別します:

  1. use Illuminate\Support\Str;
  2. $contains = Str::contains('This is my name', 'my');
  3. // true

配列の値を渡して、指定された文字列が配列内のいずれかの値を含むかどうかを判断することもできます:

  1. use Illuminate\Support\Str;
  2. $contains = Str::contains('This is my name', ['my', 'foo']);
  3. // true

ignoreCase 引数を true に設定することで、大文字と小文字の区別を無効にすることができます:

  1. use Illuminate\Support\Str;
  2. $contains = Str::contains('This is my name', 'MY', ignoreCase: true);
  3. // true

Str::containsAll()

Str::containsAll メソッドは、指定された文字列が指定された配列内のすべての値を含むかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $containsAll = Str::containsAll('This is my name', ['my', 'name']);
  3. // true

ignoreCase 引数を true に設定することで、大文字と小文字の区別を無効にすることができます:

  1. use Illuminate\Support\Str;
  2. $containsAll = Str::containsAll('This is my name', ['MY', 'NAME'], ignoreCase: true);
  3. // true

Str::deduplicate()

Str::deduplicate メソッドは、指定された文字列内の連続する文字のインスタンスを単一のインスタンスに置き換えます。デフォルトでは、このメソッドはスペースを重複排除します:

  1. use Illuminate\Support\Str;
  2. $result = Str::deduplicate('The Laravel Framework');
  3. // The Laravel Framework

異なる文字を指定して重複排除するには、メソッドの第二引数として渡すことができます:

  1. use Illuminate\Support\Str;
  2. $result = Str::deduplicate('The---Laravel---Framework', '-');
  3. // The-Laravel-Framework

Str::endsWith()

Str::endsWith メソッドは、指定された文字列が指定された値で終わるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::endsWith('This is my name', 'name');
  3. // true

配列の値を渡して、指定された文字列が配列内のいずれかの値で終わるかどうかを判断することもできます:

  1. use Illuminate\Support\Str;
  2. $result = Str::endsWith('This is my name', ['name', 'foo']);
  3. // true
  4. $result = Str::endsWith('This is my name', ['this', 'foo']);
  5. // false

Str::excerpt()

Str::excerpt メソッドは、指定された文字列内のフレーズの最初のインスタンスに一致する抜粋を抽出します:

  1. use Illuminate\Support\Str;
  2. $excerpt = Str::excerpt('This is my name', 'my', [
  3. 'radius' => 3
  4. ]);
  5. // '...is my na...'

radius オプションは、デフォルトで 100 に設定されており、切り取られた文字列の両側に表示される文字数を定義できます。

さらに、omission オプションを使用して、切り取られた文字列の前後に追加される文字列を定義できます:

  1. use Illuminate\Support\Str;
  2. $excerpt = Str::excerpt('This is my name', 'name', [
  3. 'radius' => 3,
  4. 'omission' => '(...) '
  5. ]);
  6. // '(...) my name'

Str::finish()

Str::finish メソッドは、指定された値がすでにその値で終わっていない場合、文字列にその値の単一のインスタンスを追加します:

  1. use Illuminate\Support\Str;
  2. $adjusted = Str::finish('this/string', '/');
  3. // this/string/
  4. $adjusted = Str::finish('this/string/', '/');
  5. // this/string/

Str::headline()

Str::headline メソッドは、大文字、小文字、ハイフン、またはアンダースコアで区切られた文字列を、各単語の最初の文字が大文字のスペースで区切られた文字列に変換します:

  1. use Illuminate\Support\Str;
  2. $headline = Str::headline('steve_jobs');
  3. // Steve Jobs
  4. $headline = Str::headline('EmailNotificationSent');
  5. // Email Notification Sent

Str::inlineMarkdown()

Str::inlineMarkdown メソッドは、GitHub フレーバーの Markdown を CommonMark を使用してインライン HTML に変換します。ただし、markdown メソッドとは異なり、生成されたすべての HTML をブロックレベルの要素でラップしません:

  1. use Illuminate\Support\Str;
  2. $html = Str::inlineMarkdown('**Laravel**');
  3. // <strong>Laravel</strong>

Markdown セキュリティ

デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:

  1. use Illuminate\Support\Str;
  2. Str::inlineMarkdown('Inject: <script>alert("Hello XSS!");</script>', [
  3. 'html_input' => 'strip',
  4. 'allow_unsafe_links' => false,
  5. ]);
  6. // Inject: alert(&quot;Hello XSS!&quot;);

Str::is()

Str::is メソッドは、指定された文字列が指定されたパターンに一致するかどうかを判断します。アスタリスクはワイルドカード値として使用できます:

  1. use Illuminate\Support\Str;
  2. $matches = Str::is('foo*', 'foobar');
  3. // true
  4. $matches = Str::is('baz*', 'foobar');
  5. // false

Str::isAscii()

Str::isAscii メソッドは、指定された文字列が 7 ビット ASCII であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $isAscii = Str::isAscii('Taylor');
  3. // true
  4. $isAscii = Str::isAscii('ü');
  5. // false

Str::isJson()

Str::isJson メソッドは、指定された文字列が有効な JSON であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::isJson('[1,2,3]');
  3. // true
  4. $result = Str::isJson('{"first": "John", "last": "Doe"}');
  5. // true
  6. $result = Str::isJson('{first: "John", last: "Doe"}');
  7. // false

Str::isUrl()

Str::isUrl メソッドは、指定された文字列が有効な URL であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $isUrl = Str::isUrl('http://example.com');
  3. // true
  4. $isUrl = Str::isUrl('laravel');
  5. // false

isUrl メソッドは、広範囲のプロトコルを有効と見なします。ただし、有効と見なすプロトコルを指定するには、isUrl メソッドに提供することができます:

  1. $isUrl = Str::isUrl('http://example.com', ['http', 'https']);

Str::isUlid()

Str::isUlid メソッドは、指定された文字列が有効な ULID であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40');
  3. // true
  4. $isUlid = Str::isUlid('laravel');
  5. // false

Str::isUuid()

Str::isUuid メソッドは、指定された文字列が有効な UUID であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
  3. // true
  4. $isUuid = Str::isUuid('laravel');
  5. // false

Str::kebab()

Str::kebab メソッドは、指定された文字列を kebab-case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::kebab('fooBar');
  3. // foo-bar

Str::lcfirst()

Str::lcfirst メソッドは、指定された文字列の最初の文字を小文字にして返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::lcfirst('Foo Bar');
  3. // foo Bar

Str::length()

Str::length メソッドは、指定された文字列の長さを返します:

  1. use Illuminate\Support\Str;
  2. $length = Str::length('Laravel');
  3. // 7

Str::limit()

Str::limit メソッドは、指定された長さに文字列を切り詰めます:

  1. use Illuminate\Support\Str;
  2. $truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
  3. // The quick brown fox...

切り詰められた文字列の末尾に追加される文字列を変更するために、メソッドに第三引数を渡すことができます:

  1. $truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
  2. // The quick brown fox (...)

文字列を切り詰める際に完全な単語を保持したい場合は、preserveWords 引数を利用できます。この引数が true の場合、文字列は最も近い完全な単語の境界で切り詰められます:

  1. $truncated = Str::limit('The quick brown fox', 12, preserveWords: true);
  2. // The quick...

Str::lower()

Str::lower メソッドは、指定された文字列を小文字に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::lower('LARAVEL');
  3. // laravel

Str::markdown()

Str::markdown メソッドは、GitHub フレーバーの Markdown を CommonMark を使用して HTML に変換します:

  1. use Illuminate\Support\Str;
  2. $html = Str::markdown('# Laravel');
  3. // <h1>Laravel</h1>
  4. $html = Str::markdown('# Taylor <b>Otwell</b>', [
  5. 'html_input' => 'strip',
  6. ]);
  7. // <h1>Taylor Otwell</h1>

Markdown セキュリティ

デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:

  1. use Illuminate\Support\Str;
  2. Str::markdown('Inject: <script>alert("Hello XSS!");</script>', [
  3. 'html_input' => 'strip',
  4. 'allow_unsafe_links' => false,
  5. ]);
  6. // <p>Inject: alert(&quot;Hello XSS!&quot;);</p>

Str::mask()

Str::mask メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号などの文字列のセグメントを隠すために使用できます:

  1. use Illuminate\Support\Str;
  2. $string = Str::mask('', '*', 3);
  3. // tay***************

必要に応じて、mask メソッドに第三引数として負の数を提供すると、文字列の末尾から指定された距離でマスクを開始するように指示します:

  1. $string = Str::mask('', '*', -15, 3);
  2. // tay***@example.com

Str::orderedUuid()

Str::orderedUuid メソッドは、効率的にインデックス付きデータベース列に保存できる「タイムスタンプファースト」UUID を生成します。このメソッドを使用して生成された各 UUID は、以前に生成された UUID の後にソートされます:

  1. use Illuminate\Support\Str;
  2. return (string) Str::orderedUuid();

Str::padBoth()

Str::padBoth メソッドは、PHP の str_pad 関数をラップし、文字列の両側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::padBoth('James', 10, '_');
  3. // '__James___'
  4. $padded = Str::padBoth('James', 10);
  5. // ' James '

Str::padLeft()

Str::padLeft メソッドは、PHP の str_pad 関数をラップし、文字列の左側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::padLeft('James', 10, '-=');
  3. // '-=-=-James'
  4. $padded = Str::padLeft('James', 10);
  5. // ' James'

Str::padRight()

Str::padRight メソッドは、PHP の str_pad 関数をラップし、文字列の右側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::padRight('James', 10, '-');
  3. // 'James-----'
  4. $padded = Str::padRight('James', 10);
  5. // 'James '

Str::password()

Str::password メソッドは、指定された長さの安全でランダムなパスワードを生成するために使用できます。パスワードは、文字、数字、記号、スペースの組み合わせで構成されます。デフォルトでは、パスワードは 32 文字の長さです:

  1. use Illuminate\Support\Str;
  2. $password = Str::password();
  3. // 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
  4. $password = Str::password(12);
  5. // 'qwuar>#V|i]N'

Str::plural()

Str::plural メソッドは、単数形の文字列をその複数形に変換します。この関数は、Laravel の複数形化をサポートする任意の言語 をサポートしています:

  1. use Illuminate\Support\Str;
  2. $plural = Str::plural('car');
  3. // cars
  4. $plural = Str::plural('child');
  5. // children

整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:

  1. use Illuminate\Support\Str;
  2. $plural = Str::plural('child', 2);
  3. // children
  4. $singular = Str::plural('child', 1);
  5. // child

Str::pluralStudly()

Str::pluralStudly メソッドは、スタドリーキャップケースでフォーマットされた単数形の文字列をその複数形に変換します。この関数は、Laravel の複数形化をサポートする任意の言語 をサポートしています:

  1. use Illuminate\Support\Str;
  2. $plural = Str::pluralStudly('VerifiedHuman');
  3. // VerifiedHumans
  4. $plural = Str::pluralStudly('UserFeedback');
  5. // UserFeedback

整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:

  1. use Illuminate\Support\Str;
  2. $plural = Str::pluralStudly('VerifiedHuman', 2);
  3. // VerifiedHumans
  4. $singular = Str::pluralStudly('VerifiedHuman', 1);
  5. // VerifiedHuman

Str::position()

Str::position メソッドは、文字列内の部分文字列の最初の出現の位置を返します。部分文字列が指定された文字列に存在しない場合、false が返されます:

  1. use Illuminate\Support\Str;
  2. $position = Str::position('Hello, World!', 'Hello');
  3. // 0
  4. $position = Str::position('Hello, World!', 'W');
  5. // 7

Str::random()

Str::random メソッドは、指定された長さのランダムな文字列を生成します。この関数は、PHP の random_bytes 関数を使用します:

  1. use Illuminate\Support\Str;
  2. $random = Str::random(40);

テスト中に、Str::random メソッドによって返される値を「偽造」することが役立つ場合があります。これを実現するには、createRandomStringsUsing メソッドを使用できます:

  1. Str::createRandomStringsUsing(function () {
  2. return 'fake-random-string';
  3. });

random メソッドに通常のランダム文字列の生成に戻すよう指示するには、createRandomStringsNormally メソッドを呼び出すことができます:

  1. Str::createRandomStringsNormally();

Str::remove()

Str::remove メソッドは、文字列から指定された値または値の配列を削除します:

  1. use Illuminate\Support\Str;
  2. $string = 'Peter Piper picked a peck of pickled peppers.';
  3. $removed = Str::remove('e', $string);
  4. // Ptr Pipr pickd a pck of pickld ppprs.

文字列を削除する際に大文字と小文字を無視するには、falseremove メソッドの第三引数として渡すこともできます。

Str::repeat()

Str::repeat メソッドは、指定された文字列を繰り返します:

  1. use Illuminate\Support\Str;
  2. $string = 'a';
  3. $repeat = Str::repeat($string, 5);
  4. // aaaaa

Str::replace()

Str::replace メソッドは、文字列内の指定された文字列を置き換えます:

  1. use Illuminate\Support\Str;
  2. $string = 'Laravel 10.x';
  3. $replaced = Str::replace('10.x', '11.x', $string);
  4. // Laravel 11.x

replace メソッドは、caseSensitive 引数も受け入れます。デフォルトでは、replace メソッドは大文字と小文字を区別します:

  1. Str::replace('Framework', 'Laravel', caseSensitive: false);

Str::replaceArray()

Str::replaceArray メソッドは、配列を使用して文字列内の指定された値を順次置き換えます:

  1. use Illuminate\Support\Str;
  2. $string = 'The event will take place between ? and ?';
  3. $replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
  4. // The event will take place between 8:30 and 9:00

Str::replaceFirst()

Str::replaceFirst メソッドは、文字列内の指定された値の最初の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
  3. // a quick brown fox jumps over the lazy dog

Str::replaceLast()

Str::replaceLast メソッドは、文字列内の指定された値の最後の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog');
  3. // the quick brown fox jumps over a lazy dog

Str::replaceMatches()

Str::replaceMatches メソッドは、指定されたパターンに一致する文字列のすべての部分を指定された置換文字列で置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceMatches(
  3. pattern: '/[^A-Za-z0-9]++/',
  4. replace: '',
  5. subject: '(+1) 501-555-1000'
  6. )
  7. // '15015551000'

replaceMatches メソッドは、指定されたパターンに一致する文字列の各部分で呼び出されるクロージャも受け入れ、クロージャ内で置き換えロジックを実行し、置き換えられた値を返すことができます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceMatches('/\d/', function (array $matches) {
  3. return '['.$matches[0].']';
  4. }, '123');
  5. // '[1][2][3]'

Str::replaceStart()

Str::replaceStart メソッドは、指定された値が文字列の先頭に出現する場合のみ、その最初の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');
  3. // Laravel World
  4. $replaced = Str::replaceStart('World', 'Laravel', 'Hello World');
  5. // Hello World

Str::replaceEnd()

Str::replaceEnd メソッドは、指定された値が文字列の末尾に出現する場合のみ、その最後の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::replaceEnd('World', 'Laravel', 'Hello World');
  3. // Hello Laravel
  4. $replaced = Str::replaceEnd('Hello', 'Laravel', 'Hello World');
  5. // Hello World

Str::reverse()

Str::reverse メソッドは、指定された文字列を反転させます:

  1. use Illuminate\Support\Str;
  2. $reversed = Str::reverse('Hello World');
  3. // dlroW olleH

Str::singular()

Str::singular メソッドは、文字列をその単数形に変換します。この関数は、Laravel の複数形化をサポートする任意の言語 をサポートしています:

  1. use Illuminate\Support\Str;
  2. $singular = Str::singular('cars');
  3. // car
  4. $singular = Str::singular('children');
  5. // child

Str::slug()

Str::slug メソッドは、指定された文字列から URL フレンドリーな「スラッグ」を生成します:

  1. use Illuminate\Support\Str;
  2. $slug = Str::slug('Laravel 5 Framework', '-');
  3. // laravel-5-framework

Str::snake()

Str::snake メソッドは、指定された文字列を snake_case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::snake('fooBar');
  3. // foo_bar
  4. $converted = Str::snake('fooBar', '-');
  5. // foo-bar

Str::squish()

Str::squish メソッドは、文字列からすべての余分な空白を削除します。単語間の余分な空白も含まれます:

  1. use Illuminate\Support\Str;
  2. $string = Str::squish(' laravel framework ');
  3. // laravel framework

Str::start()

Str::start メソッドは、指定された値が文字列の先頭にない場合、その値の単一インスタンスを文字列に追加します:

  1. use Illuminate\Support\Str;
  2. $adjusted = Str::start('this/string', '/');
  3. // /this/string
  4. $adjusted = Str::start('/this/string', '/');
  5. // /this/string

Str::startsWith()

Str::startsWith メソッドは、指定された文字列が指定された値で始まるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::startsWith('This is my name', 'This');
  3. // true

可能な値の配列が渡された場合、startsWith メソッドは、文字列が指定された値のいずれかで始まる場合 true を返します:

  1. $result = Str::startsWith('This is my name', ['This', 'That', 'There']);
  2. // true

Str::studly()

Str::studly メソッドは、指定された文字列を StudlyCase に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::studly('foo_bar');
  3. // FooBar

Str::substr()

Str::substr メソッドは、開始位置と長さのパラメータで指定された文字列の部分を返します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::substr('The Laravel Framework', 4, 7);
  3. // Laravel

Str::substrCount()

Str::substrCount メソッドは、指定された文字列内の指定された値の出現回数を返します:

  1. use Illuminate\Support\Str;
  2. $count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like');
  3. // 2

Str::substrReplace()

Str::substrReplace メソッドは、文字列の一部内のテキストを置き換えます。これは、第三引数で指定された位置から始まり、第四引数で指定された文字数を置き換えます。0 をメソッドの第四引数に渡すと、文字列内の既存の文字を置き換えずに指定された位置に文字列を挿入します:

  1. use Illuminate\Support\Str;
  2. $result = Str::substrReplace('1300', ':', 2);
  3. // 13:
  4. $result = Str::substrReplace('1300', ':', 2, 0);
  5. // 13:00

Str::swap()

Str::swap メソッドは、PHP の strtr 関数を使用して、指定された文字列内の複数の値を置き換えます:

  1. use Illuminate\Support\Str;
  2. $string = Str::swap([
  3. 'Tacos' => 'Burritos',
  4. 'great' => 'fantastic',
  5. ], 'Tacos are great!');
  6. // Burritos are fantastic!

Str::take()

Str::take メソッドは、文字列の先頭から指定された数の文字を返します:

  1. use Illuminate\Support\Str;
  2. $taken = Str::take('Build something amazing!', 5);
  3. // Build

Str::title()

Str::title メソッドは、指定された文字列を Title Case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::title('a nice title uses the correct case');
  3. // A Nice Title Uses The Correct Case

Str::toBase64()

Str::toBase64 メソッドは、指定された文字列を Base64 に変換します:

  1. use Illuminate\Support\Str;
  2. $base64 = Str::toBase64('Laravel');
  3. // TGFyYXZlbA==

Str::toHtmlString()

Str::toHtmlString メソッドは、文字列インスタンスを Illuminate\Support\HtmlString のインスタンスに変換します。これは、Blade テンプレートで表示される可能性があります:

  1. use Illuminate\Support\Str;
  2. $htmlString = Str::of('Nuno Maduro')->toHtmlString();

Str::transliterate()

Str::transliterate メソッドは、指定された文字列を最も近い ASCII 表現に変換しようとします:

  1. use Illuminate\Support\Str;
  2. $email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
  3. // ''

Str::trim()

Str::trim メソッドは、指定された文字列の先頭と末尾から空白(または他の文字)を削除します。PHP のネイティブ trim 関数とは異なり、Str::trim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::trim(' foo bar ');
  3. // 'foo bar'

Str::ltrim()

Str::ltrim メソッドは、指定された文字列の先頭から空白(または他の文字)を削除します。PHP のネイティブ ltrim 関数とは異なり、Str::ltrim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::ltrim(' foo bar ');
  3. // 'foo bar '

Str::rtrim()

Str::rtrim メソッドは、指定された文字列の末尾から空白(または他の文字)を削除します。PHP のネイティブ rtrim 関数とは異なり、Str::rtrim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::rtrim(' foo bar ');
  3. // ' foo bar'

Str::ucfirst()

Str::ucfirst メソッドは、指定された文字列の最初の文字を大文字にして返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::ucfirst('foo bar');
  3. // Foo bar

Str::ucsplit()

Str::ucsplit メソッドは、指定された文字列を大文字の文字で配列に分割します:

  1. use Illuminate\Support\Str;
  2. $segments = Str::ucsplit('FooBar');
  3. // [0 => 'Foo', 1 => 'Bar']

Str::upper()

Str::upper メソッドは、指定された文字列を大文字に変換します:

  1. use Illuminate\Support\Str;
  2. $string = Str::upper('laravel');
  3. // LARAVEL

Str::ulid()

Str::ulid メソッドは、コンパクトで時間順序のユニーク識別子である ULID を生成します:

  1. use Illuminate\Support\Str;
  2. return (string) Str::ulid();
  3. // 01gd6r360bp37zj17nxb55yv40

指定された ULID が作成された日付と時刻を表す Illuminate\Support\Carbon 日付インスタンスを取得したい場合は、Laravel の Carbon 統合によって提供される createFromId メソッドを使用できます:

  1. use Illuminate\Support\Carbon;
  2. use Illuminate\Support\Str;
  3. $date = Carbon::createFromId((string) Str::ulid());

テスト中に、Str::ulid メソッドによって返される値を「フェイク」することが有用な場合があります。これを実現するには、createUlidsUsing メソッドを使用できます:

  1. use Symfony\Component\Uid\Ulid;
  2. Str::createUlidsUsing(function () {
  3. return new Ulid('01HRDBNHHCKNW2AK4Z29SN82T9');
  4. });

ulid メソッドに通常の ULID の生成に戻るよう指示するには、createUlidsNormally メソッドを呼び出すことができます:

  1. Str::createUlidsNormally();

Str::unwrap()

Str::unwrap メソッドは、指定された文字列を文字列の先頭と末尾から削除します:

  1. use Illuminate\Support\Str;
  2. Str::unwrap('-Laravel-', '-');
  3. // Laravel
  4. Str::unwrap('{framework: "Laravel"}', '{', '}');
  5. // framework: "Laravel"

Str::uuid()

Str::uuid メソッドは、UUID(バージョン 4)を生成します:

  1. use Illuminate\Support\Str;
  2. return (string) Str::uuid();

テスト中に、Str::uuid メソッドによって返される値を「フェイク」することが有用な場合があります。これを実現するには、createUuidsUsing メソッドを使用できます:

  1. use Ramsey\Uuid\Uuid;
  2. Str::createUuidsUsing(function () {
  3. return Uuid::fromString('eadbfeac-5258-45c2-bab7-ccb9b5ef74f9');
  4. });

uuid メソッドに通常の UUID の生成に戻るよう指示するには、createUuidsNormally メソッドを呼び出すことができます:

  1. Str::createUuidsNormally();

Str::wordCount()

Str::wordCount メソッドは、文字列に含まれる単語の数を返します:

  1. use Illuminate\Support\Str;
  2. Str::wordCount('Hello, world!'); // 2

Str::wordWrap()

Str::wordWrap メソッドは、指定された文字数に文字列をラップします:

  1. use Illuminate\Support\Str;
  2. $text = "The quick brown fox jumped over the lazy dog."
  3. Str::wordWrap($text, characters: 20, break: "<br />\n");
  4. /*
  5. The quick brown fox<br />
  6. jumped over the lazy<br />
  7. dog.
  8. */

Str::words()

Str::words メソッドは、文字列内の単語の数を制限します。このメソッドには、切り捨てられた文字列の末尾に追加される文字列を指定するために、第三引数を介して追加の文字列を渡すことができます:

  1. use Illuminate\Support\Str;
  2. return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
  3. // Perfectly balanced, as >>>

Str::wrap()

Str::wrap メソッドは、指定された文字列を追加の文字列または文字列のペアでラップします:

  1. use Illuminate\Support\Str;
  2. Str::wrap('Laravel', '"');
  3. // "Laravel"
  4. Str::wrap('is', before: 'This ', after: ' Laravel!');
  5. // This is Laravel!

str()

str 関数は、指定された文字列の新しい Illuminate\Support\Stringable インスタンスを返します。この関数は、Str::of メソッドと同等です:

  1. $string = str('Taylor')->append(' Otwell');
  2. // 'Taylor Otwell'

引数が str 関数に提供されない場合、関数は Illuminate\Support\Str のインスタンスを返します:

  1. $snake = str()->snake('FooBar');
  2. // 'foo_bar'

trans()

trans 関数は、指定された翻訳キーをあなたの 言語ファイル を使用して翻訳します:

  1. echo trans('messages.welcome');

指定された翻訳キーが存在しない場合、trans 関数は指定されたキーを返します。したがって、上記の例を使用すると、trans 関数は翻訳キーが存在しない場合 messages.welcome を返します。

trans_choice()

trans_choice 関数は、屈折を伴って指定された翻訳キーを翻訳します:

  1. echo trans_choice('messages.notifications', $unreadCount);

指定された翻訳キーが存在しない場合、trans_choice 関数は指定されたキーを返します。したがって、上記の例を使用すると、trans_choice 関数は翻訳キーが存在しない場合 messages.notifications を返します。

Fluent Strings

流暢な文字列は、文字列値を操作するためのより流暢でオブジェクト指向のインターフェースを提供し、従来の文字列操作と比較して、より読みやすい構文を使用して複数の文字列操作を連鎖させることを可能にします。

after

after メソッドは、文字列内の指定された値の後のすべてを返します。値が文字列内に存在しない場合、全体の文字列が返されます:

  1. use Illuminate\Support\Str;
  2. $slice = Str::of('This is my name')->after('This is');
  3. // ' my name'

afterLast

afterLast メソッドは、文字列内の指定された値の最後の出現の後のすべてを返します。値が文字列内に存在しない場合、全体の文字列が返されます:

  1. use Illuminate\Support\Str;
  2. $slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
  3. // 'Controller'

apa

apa メソッドは、指定された文字列を APA ガイドライン に従ってタイトルケースに変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('a nice title uses the correct case')->apa();
  3. // A Nice Title Uses the Correct Case

append

append メソッドは、指定された値を文字列に追加します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Taylor')->append(' Otwell');
  3. // 'Taylor Otwell'

ascii

ascii メソッドは、文字列を ASCII 値に音訳しようとします:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('ü')->ascii();
  3. // 'u'

basename

basename メソッドは、指定された文字列の末尾の名前コンポーネントを返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('/foo/bar/baz')->basename();
  3. // 'baz'

必要に応じて、末尾のコンポーネントから削除される「拡張子」を指定できます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
  3. // 'baz'

before

before メソッドは、文字列内の指定された値の前のすべてを返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::of('This is my name')->before('my name');
  3. // 'This is '

beforeLast

beforeLast メソッドは、文字列内の指定された値の最後の出現の前のすべてを返します:

  1. use Illuminate\Support\Str;
  2. $slice = Str::of('This is my name')->beforeLast('is');
  3. // 'This '

between

between メソッドは、2つの値の間の文字列の部分を返します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('This is my name')->between('This', 'name');
  3. // ' is my '

betweenFirst

betweenFirst メソッドは、2つの値の間の最小限の部分を返します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('[a] bc [d]')->betweenFirst('[', ']');
  3. // 'a'

camel

camel メソッドは、指定された文字列を camelCase に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('foo_bar')->camel();
  3. // 'fooBar'

charAt

charAt メソッドは、指定されたインデックスの文字を返します。インデックスが範囲外の場合、false が返されます:

  1. use Illuminate\Support\Str;
  2. $character = Str::of('This is my name.')->charAt(6);
  3. // 's'

classBasename

classBasename メソッドは、指定されたクラスのクラス名を、クラスの名前空間を削除して返します:

  1. use Illuminate\Support\Str;
  2. $class = Str::of('Foo\Bar\Baz')->classBasename();
  3. // 'Baz'

chopStart

chopStart メソッドは、指定された値が文字列の先頭に現れる場合にのみ、その最初の出現を削除します:

  1. use Illuminate\Support\Str;
  2. $url = Str::of('https://laravel.com')->chopStart('https://');
  3. // 'laravel.com'

配列を渡すこともできます。文字列が配列内のいずれかの値で始まる場合、その値が文字列から削除されます:

  1. use Illuminate\Support\Str;
  2. $url = Str::of('http://laravel.com')->chopStart(['https://', 'http://']);
  3. // 'laravel.com'

chopEnd

chopEnd メソッドは、指定された値が文字列の末尾に現れる場合にのみ、その最後の出現を削除します:

  1. use Illuminate\Support\Str;
  2. $url = Str::of('https://laravel.com')->chopEnd('.com');
  3. // 'https://laravel'

配列を渡すこともできます。文字列が配列内のいずれかの値で終わる場合、その値が文字列から削除されます:

  1. use Illuminate\Support\Str;
  2. $url = Str::of('http://laravel.com')->chopEnd(['.com', '.io']);
  3. // 'http://laravel'

contains

contains メソッドは、指定された文字列が指定された値を含むかどうかを判断します。デフォルトでは、このメソッドは大文字と小文字を区別します:

  1. use Illuminate\Support\Str;
  2. $contains = Str::of('This is my name')->contains('my');
  3. // true

配列の値を渡して、指定された文字列が配列内のいずれかの値を含むかどうかを判断することもできます:

  1. use Illuminate\Support\Str;
  2. $contains = Str::of('This is my name')->contains(['my', 'foo']);
  3. // true

ignoreCase 引数を true に設定することで、大文字と小文字の区別を無効にできます:

  1. use Illuminate\Support\Str;
  2. $contains = Str::of('This is my name')->contains('MY', ignoreCase: true);
  3. // true

containsAll

containsAll メソッドは、指定された文字列が指定された配列内のすべての値を含むかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
  3. // true

大文字と小文字の区別を無効にするには、ignoreCase 引数を true に設定します:

  1. use Illuminate\Support\Str;
  2. $containsAll = Str::of('This is my name')->containsAll(['MY', 'NAME'], ignoreCase: true);
  3. // true

deduplicate

deduplicate メソッドは、指定された文字列内の連続する文字のインスタンスを単一のインスタンスに置き換えます。デフォルトでは、このメソッドは空白を重複排除します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('The Laravel Framework')->deduplicate();
  3. // The Laravel Framework

異なる文字を指定して重複排除するには、メソッドの第二引数として渡すことができます:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('The---Laravel---Framework')->deduplicate('-');
  3. // The-Laravel-Framework

dirname

dirname メソッドは、指定された文字列の親ディレクトリ部分を返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('/foo/bar/baz')->dirname();
  3. // '/foo/bar'

必要に応じて、文字列からトリミングしたいディレクトリレベルの数を指定できます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('/foo/bar/baz')->dirname(2);
  3. // '/foo'

endsWith

endsWith メソッドは、指定された文字列が指定された値で終わるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('This is my name')->endsWith('name');
  3. // true

配列の値を渡して、指定された文字列が配列内のいずれかの値で終わるかどうかを判断することもできます:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('This is my name')->endsWith(['name', 'foo']);
  3. // true
  4. $result = Str::of('This is my name')->endsWith(['this', 'foo']);
  5. // false

exactly

exactly メソッドは、指定された文字列が他の文字列と完全に一致するかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('Laravel')->exactly('Laravel');
  3. // true

excerpt

excerpt メソッドは、文字列内のフレーズの最初の出現に一致する抜粋を抽出します:

  1. use Illuminate\Support\Str;
  2. $excerpt = Str::of('This is my name')->excerpt('my', [
  3. 'radius' => 3
  4. ]);
  5. // '...is my na...'

radius オプションは、デフォルトで 100 に設定されており、切り取られた文字列の両側に表示される文字数を定義できます。

  1. use Illuminate\Support\Str;
  2. $excerpt = Str::of('This is my name')->excerpt('name', [
  3. 'radius' => 3,
  4. 'omission' => '(...) '
  5. ]);
  6. // '(...) my name'

explode

explode メソッドは、指定された区切り文字で文字列を分割し、分割された文字列の各セクションを含むコレクションを返します:

  1. use Illuminate\Support\Str;
  2. $collection = Str::of('foo bar baz')->explode(' ');
  3. // collect(['foo', 'bar', 'baz'])

finish

finish メソッドは、指定された値が文字列の末尾にない場合、その値の単一インスタンスを文字列に追加します:

  1. use Illuminate\Support\Str;
  2. $adjusted = Str::of('this/string')->finish('/');
  3. // this/string/
  4. $adjusted = Str::of('this/string/')->finish('/');
  5. // this/string/

headline

headline メソッドは、大文字、小文字、ハイフン、またはアンダースコアで区切られた文字列を、各単語の最初の文字が大文字の空白区切りの文字列に変換します:

  1. use Illuminate\Support\Str;
  2. $headline = Str::of('taylor_otwell')->headline();
  3. // Taylor Otwell
  4. $headline = Str::of('EmailNotificationSent')->headline();
  5. // Email Notification Sent

inlineMarkdown

inlineMarkdown メソッドは、GitHub フレーバーの Markdown を CommonMark を使用してインライン HTML に変換します。ただし、markdown メソッドとは異なり、生成されたすべての HTML をブロックレベルの要素でラップしません:

  1. use Illuminate\Support\Str;
  2. $html = Str::of('**Laravel**')->inlineMarkdown();
  3. // <strong>Laravel</strong>

Markdown Security

デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:

  1. use Illuminate\Support\Str;
  2. Str::of('Inject: <script>alert("Hello XSS!");</script>')->inlineMarkdown([
  3. 'html_input' => 'strip',
  4. 'allow_unsafe_links' => false,
  5. ]);
  6. // Inject: alert(&quot;Hello XSS!&quot;);

is

is メソッドは、指定された文字列が指定されたパターンに一致するかどうかを判断します。アスタリスクはワイルドカード値として使用できます

  1. use Illuminate\Support\Str;
  2. $matches = Str::of('foobar')->is('foo*');
  3. // true
  4. $matches = Str::of('foobar')->is('baz*');
  5. // false

isAscii

isAscii メソッドは、指定された文字列が ASCII 文字列であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('Taylor')->isAscii();
  3. // true
  4. $result = Str::of('ü')->isAscii();
  5. // false

isEmpty

isEmpty メソッドは、指定された文字列が空であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of(' ')->trim()->isEmpty();
  3. // true
  4. $result = Str::of('Laravel')->trim()->isEmpty();
  5. // false

isNotEmpty

isNotEmpty メソッドは、指定された文字列が空でないかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of(' ')->trim()->isNotEmpty();
  3. // false
  4. $result = Str::of('Laravel')->trim()->isNotEmpty();
  5. // true

isJson

isJson メソッドは、指定された文字列が有効な JSON であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('[1,2,3]')->isJson();
  3. // true
  4. $result = Str::of('{"first": "John", "last": "Doe"}')->isJson();
  5. // true
  6. $result = Str::of('{first: "John", last: "Doe"}')->isJson();
  7. // false

isUlid

isUlid メソッドは、指定された文字列が ULID であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid();
  3. // true
  4. $result = Str::of('Taylor')->isUlid();
  5. // false

isUrl

isUrl メソッドは、指定された文字列が URL であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('http://example.com')->isUrl();
  3. // true
  4. $result = Str::of('Taylor')->isUrl();
  5. // false

isUrl メソッドは、広範囲のプロトコルを有効と見なします。ただし、有効と見なすプロトコルを指定するには、isUrl メソッドに提供することができます:

  1. $result = Str::of('http://example.com')->isUrl(['http', 'https']);

isUuid

isUuid メソッドは、指定された文字列が UUID であるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
  3. // true
  4. $result = Str::of('Taylor')->isUuid();
  5. // false

kebab

kebab メソッドは、指定された文字列を kebab-case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('fooBar')->kebab();
  3. // foo-bar

lcfirst

lcfirst メソッドは、指定された文字列の最初の文字を小文字にして返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Foo Bar')->lcfirst();
  3. // foo Bar

length

length メソッドは、指定された文字列の長さを返します:

  1. use Illuminate\Support\Str;
  2. $length = Str::of('Laravel')->length();
  3. // 7

limit

limit メソッドは、指定された長さに文字列を切り捨てます:

  1. use Illuminate\Support\Str;
  2. $truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
  3. // The quick brown fox...

切り捨てられた文字列の末尾に追加される文字列を変更するために、第二引数を渡すこともできます:

  1. $truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
  2. // The quick brown fox (...)

文字列を切り詰める際に完全な単語を保持したい場合は、preserveWords 引数を利用できます。この引数が true の場合、文字列は最も近い完全な単語の境界で切り詰められます:

  1. $truncated = Str::of('The quick brown fox')->limit(12, preserveWords: true);
  2. // The quick...

lower

lower メソッドは、指定された文字列を小文字に変換します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('LARAVEL')->lower();
  3. // 'laravel'

markdown

markdown メソッドは、GitHub フレーバーの Markdown を HTML に変換します:

  1. use Illuminate\Support\Str;
  2. $html = Str::of('# Laravel')->markdown();
  3. // <h1>Laravel</h1>
  4. $html = Str::of('# Taylor <b>Otwell</b>')->markdown([
  5. 'html_input' => 'strip',
  6. ]);
  7. // <h1>Taylor Otwell</h1>

Markdown Security

デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:

  1. use Illuminate\Support\Str;
  2. Str::of('Inject: <script>alert("Hello XSS!");</script>')->markdown([
  3. 'html_input' => 'strip',
  4. 'allow_unsafe_links' => false,
  5. ]);
  6. // <p>Inject: alert(&quot;Hello XSS!&quot;);</p>

mask

mask メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号などの文字列のセグメントを隠すために使用できます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('')->mask('*', 3);
  3. // tay***************

必要に応じて、mask メソッドの第三または第四引数に負の数を指定することで、文字列の末尾から指定された距離でマスキングを開始するよう指示できます:

  1. $string = Str::of('')->mask('*', -15, 3);
  2. // tay***@example.com
  3. $string = Str::of('')->mask('*', 4, -4);
  4. // tayl**********.com

match

match メソッドは、指定された正規表現パターンに一致する文字列の部分を返します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('foo bar')->match('/bar/');
  3. // 'bar'
  4. $result = Str::of('foo bar')->match('/foo (.*)/');
  5. // 'bar'

matchAll

matchAll メソッドは、指定された正規表現パターンに一致する文字列の部分を含むコレクションを返します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('bar foo bar')->matchAll('/bar/');
  3. // collect(['bar', 'bar'])

一致するグループを指定した場合、Laravel は最初の一致するグループの一致を含むコレクションを返します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
  3. // collect(['un', 'ly']);

一致が見つからない場合、空のコレクションが返されます。

isMatch

isMatch メソッドは、文字列が指定された正規表現に一致する場合 true を返します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('foo bar')->isMatch('/foo (.*)/');
  3. // true
  4. $result = Str::of('laravel')->isMatch('/foo (.*)/');
  5. // false

newLine

newLine メソッドは、文字列に「行の終わり」文字を追加します:

  1. use Illuminate\Support\Str;
  2. $padded = Str::of('Laravel')->newLine()->append('Framework');
  3. // 'Laravel
  4. // Framework'

padBoth

padBoth メソッドは、PHP の str_pad 関数をラップし、文字列の両側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::of('James')->padBoth(10, '_');
  3. // '__James___'
  4. $padded = Str::of('James')->padBoth(10);
  5. // ' James '

padLeft

padLeft メソッドは、PHP の str_pad 関数をラップし、文字列の左側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::of('James')->padLeft(10, '-=');
  3. // '-=-=-James'
  4. $padded = Str::of('James')->padLeft(10);
  5. // ' James'

padRight

padRight メソッドは、PHP の str_pad 関数をラップし、文字列の右側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:

  1. use Illuminate\Support\Str;
  2. $padded = Str::of('James')->padRight(10, '-');
  3. // 'James-----'
  4. $padded = Str::of('James')->padRight(10);
  5. // 'James '

pipe

pipe メソッドは、文字列の現在の値を指定されたコール可能に渡すことで、文字列を変換することを可能にします:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: ');
  4. // 'Checksum: a5c95b86291ea299fcbe64458ed12702'
  5. $closure = Str::of('foo')->pipe(function (Stringable $str) {
  6. return 'bar';
  7. });
  8. // 'bar'

plural

plural メソッドは、単数形の単語文字列をその複数形に変換します。この関数は、Laravel の複数形化をサポートする任意の言語 をサポートしています:

  1. use Illuminate\Support\Str;
  2. $plural = Str::of('car')->plural();
  3. // cars
  4. $plural = Str::of('child')->plural();
  5. // children

整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:

  1. use Illuminate\Support\Str;
  2. $plural = Str::of('child')->plural(2);
  3. // children
  4. $plural = Str::of('child')->plural(1);
  5. // child

position

position メソッドは、文字列内の部分文字列の最初の出現の位置を返します。部分文字列が文字列内に存在しない場合、false が返されます:

  1. use Illuminate\Support\Str;
  2. $position = Str::of('Hello, World!')->position('Hello');
  3. // 0
  4. $position = Str::of('Hello, World!')->position('W');
  5. // 7

prepend

prepend メソッドは、指定された値を文字列の先頭に追加します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Framework')->prepend('Laravel ');
  3. // Laravel Framework

remove

remove メソッドは、指定された値または値の配列を文字列から削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Arkansas is quite beautiful!')->remove('quite');
  3. // Arkansas is beautiful!

文字列を削除する際に大文字と小文字を無視するには、false を第二引数として渡すこともできます。

repeat

repeat メソッドは、指定された文字列を繰り返します:

  1. use Illuminate\Support\Str;
  2. $repeated = Str::of('a')->repeat(5);
  3. // aaaaa

replace

replace メソッドは、文字列内の指定された文字列を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
  3. // Laravel 7.x

replace メソッドは、caseSensitive 引数も受け入れます。デフォルトでは、replace メソッドは大文字と小文字を区別します:

  1. $replaced = Str::of('macOS 13.x')->replace(
  2. 'macOS', 'iOS', caseSensitive: false
  3. );

replaceArray

replaceArray メソッドは、配列を使用して文字列内の指定された値を順次置き換えます:

  1. use Illuminate\Support\Str;
  2. $string = 'The event will take place between ? and ?';
  3. $replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
  4. // The event will take place between 8:30 and 9:00

replaceFirst

replaceFirst メソッドは、文字列内の指定された値の最初の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
  3. // a quick brown fox jumps over the lazy dog

replaceLast

replaceLast メソッドは、文字列内の指定された値の最後の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
  3. // the quick brown fox jumps over a lazy dog

replaceMatches

replaceMatches メソッドは、パターンに一致する文字列のすべての部分を指定された置換文字列で置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
  3. // '15015551000'

replaceMatches メソッドは、指定されたパターンに一致する文字列の各部分で呼び出されるクロージャも受け入れ、クロージャ内で置き換えロジックを実行し、置き換えられた値を返すことができます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('123')->replaceMatches('/\d/', function (array $matches) {
  3. return '['.$matches[0].']';
  4. });
  5. // '[1][2][3]'

replaceStart

replaceStart メソッドは、指定された値が文字列の先頭に現れる場合にのみ、その最初の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('Hello World')->replaceStart('Hello', 'Laravel');
  3. // Laravel World
  4. $replaced = Str::of('Hello World')->replaceStart('World', 'Laravel');
  5. // Hello World

replaceEnd

replaceEnd メソッドは、指定された値が文字列の末尾に現れる場合にのみ、その最後の出現を置き換えます:

  1. use Illuminate\Support\Str;
  2. $replaced = Str::of('Hello World')->replaceEnd('World', 'Laravel');
  3. // Hello Laravel
  4. $replaced = Str::of('Hello World')->replaceEnd('Hello', 'Laravel');
  5. // Hello World

scan

scan メソッドは、sscanf PHP 関数 によってサポートされる形式に従って、文字列からの入力をコレクションに解析します:

  1. use Illuminate\Support\Str;
  2. $collection = Str::of('filename.jpg')->scan('%[^.].%s');
  3. // collect(['filename', 'jpg'])

singular

singular メソッドは、文字列をその単数形に変換します。この関数は、Laravel の複数形化をサポートする任意の言語 をサポートしています:

  1. use Illuminate\Support\Str;
  2. $singular = Str::of('cars')->singular();
  3. // car
  4. $singular = Str::of('children')->singular();
  5. // child

slug

slug メソッドは、指定された文字列から URL フレンドリーな「スラッグ」を生成します:

  1. use Illuminate\Support\Str;
  2. $slug = Str::of('Laravel Framework')->slug('-');
  3. // laravel-framework

snake

snake メソッドは、指定された文字列を snake_case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('fooBar')->snake();
  3. // foo_bar

split

split メソッドは、正規表現を使用して文字列をコレクションに分割します:

  1. use Illuminate\Support\Str;
  2. $segments = Str::of('one, two, three')->split('/[\s,]+/');
  3. // collect(["one", "two", "three"])

squish

squish メソッドは、文字列からすべての余分な空白を削除します。単語間の余分な空白も含まれます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of(' laravel framework ')->squish();
  3. // laravel framework

start

start メソッドは、指定された値が文字列の先頭にない場合、その値の単一インスタンスを文字列に追加します:

  1. use Illuminate\Support\Str;
  2. $adjusted = Str::of('this/string')->start('/');
  3. // /this/string
  4. $adjusted = Str::of('/this/string')->start('/');
  5. // /this/string

startsWith

startsWith メソッドは、指定された文字列が指定された値で始まるかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('This is my name')->startsWith('This');
  3. // true

stripTags

stripTags メソッドは、文字列からすべての HTML および PHP タグを削除します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags();
  3. // Taylor Otwell
  4. $result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags('<b>');
  5. // Taylor <b>Otwell</b>

studly

studly メソッドは、指定された文字列を StudlyCase に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('foo_bar')->studly();
  3. // FooBar

substr

substr メソッドは、指定された開始位置と長さのパラメータによって指定された文字列の部分を返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Laravel Framework')->substr(8);
  3. // Framework
  4. $string = Str::of('Laravel Framework')->substr(8, 5);
  5. // Frame

substrReplace

substrReplace メソッドは、第二引数で指定された位置から始まり、第三引数で指定された文字数を置き換えることで、文字列の一部内のテキストを置き換えます。0 をメソッドの第三引数に渡すと、文字列内の既存の文字を置き換えずに指定された位置に文字列を挿入します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('1300')->substrReplace(':', 2);
  3. // 13:
  4. $string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
  5. // The Laravel Framework

swap

swap メソッドは、PHP の strtr 関数を使用して文字列内の複数の値を置き換えます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Tacos are great!')
  3. ->swap([
  4. 'Tacos' => 'Burritos',
  5. 'great' => 'fantastic',
  6. ]);
  7. // Burritos are fantastic!

take

take メソッドは、文字列の先頭から指定された数の文字を返します:

  1. use Illuminate\Support\Str;
  2. $taken = Str::of('Build something amazing!')->take(5);
  3. // Build

tap

tap メソッドは、文字列を指定されたクロージャに渡し、文字列自体に影響を与えずに文字列を調べたり操作したりできるようにします。元の文字列は、クロージャによって返されるものに関係なく、tap メソッドによって返されます:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('Laravel')
  4. ->append(' Framework')
  5. ->tap(function (Stringable $string) {
  6. dump('String after append: '.$string);
  7. })
  8. ->upper();
  9. // LARAVEL FRAMEWORK

test

test メソッドは、文字列が指定された正規表現パターンに一致するかどうかを判断します:

  1. use Illuminate\Support\Str;
  2. $result = Str::of('Laravel Framework')->test('/Laravel/');
  3. // true

title

title メソッドは、指定された文字列を Title Case に変換します:

  1. use Illuminate\Support\Str;
  2. $converted = Str::of('a nice title uses the correct case')->title();
  3. // A Nice Title Uses The Correct Case

toBase64()

toBase64 メソッドは、指定された文字列を Base64 に変換します:

  1. use Illuminate\Support\Str;
  2. $base64 = Str::of('Laravel')->toBase64();
  3. // TGFyYXZlbA==

transliterate

transliterate メソッドは、指定された文字列を最も近い ASCII 表現に変換しようとします:

  1. use Illuminate\Support\Str;
  2. $email = Str::of('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ')->transliterate()
  3. // ''

trim

trim メソッドは、指定された文字列をトリミングします。PHP のネイティブ trim 関数とは異なり、Laravel の trim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of(' Laravel ')->trim();
  3. // 'Laravel'
  4. $string = Str::of('/Laravel/')->trim('/');
  5. // 'Laravel'

ltrim

ltrim メソッドは、文字列の左側をトリミングします。PHP のネイティブ ltrim 関数とは異なり、Laravel の ltrim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of(' Laravel ')->ltrim();
  3. // 'Laravel '
  4. $string = Str::of('/Laravel/')->ltrim('/');
  5. // 'Laravel/'

rtrim

rtrim メソッドは、指定された文字列の右側をトリミングします。PHP のネイティブ rtrim 関数とは異なり、Laravel の rtrim メソッドは Unicode 空白文字も削除します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of(' Laravel ')->rtrim();
  3. // ' Laravel'
  4. $string = Str::of('/Laravel/')->rtrim('/');
  5. // '/Laravel'

ucfirst

ucfirst メソッドは、指定された文字列の最初の文字を大文字にして返します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('foo bar')->ucfirst();
  3. // Foo bar

ucsplit

ucsplit メソッドは、指定された文字列を大文字の文字でコレクションに分割します:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Foo Bar')->ucsplit();
  3. // collect(['Foo', 'Bar'])

unwrap

unwrap メソッドは、指定された文字列を文字列の先頭と末尾から削除します:

  1. use Illuminate\Support\Str;
  2. Str::of('-Laravel-')->unwrap('-');
  3. // Laravel
  4. Str::of('{framework: "Laravel"}')->unwrap('{', '}');
  5. // framework: "Laravel"

upper

upper メソッドは、指定された文字列を大文字に変換します:

  1. use Illuminate\Support\Str;
  2. $adjusted = Str::of('laravel')->upper();
  3. // LARAVEL

when

when メソッドは、指定された条件が true の場合に指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('Taylor')
  4. ->when(true, function (Stringable $string) {
  5. return $string->append(' Otwell');
  6. });
  7. // 'Taylor Otwell'

必要に応じて、when メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、条件パラメータが false に評価される場合に実行されます。

whenContains

whenContains メソッドは、文字列が指定された値を含む場合に指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('tony stark')
  4. ->whenContains('tony', function (Stringable $string) {
  5. return $string->title();
  6. });
  7. // 'Tony Stark'

必要に応じて、when メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、文字列が指定された値を含まない場合に実行されます。

配列の値を渡して、指定された文字列が配列内のいずれかの値を含むかどうかを判断することもできます:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('tony stark')
  4. ->whenContains(['tony', 'hulk'], function (Stringable $string) {
  5. return $string->title();
  6. });
  7. // Tony Stark

whenContainsAll

whenContainsAll メソッドは、文字列が指定されたすべてのサブ文字列を含む場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('tony stark')
  4. ->whenContainsAll(['tony', 'stark'], function (Stringable $string) {
  5. return $string->title();
  6. });
  7. // 'Tony Stark'

必要に応じて、when メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、条件パラメータが false に評価される場合に実行されます。

whenEmpty

whenEmpty メソッドは、文字列が空である場合に、指定されたクロージャを呼び出します。クロージャが値を返す場合、その値は whenEmpty メソッドによっても返されます。クロージャが値を返さない場合、流暢な文字列インスタンスが返されます:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of(' ')->whenEmpty(function (Stringable $string) {
  4. return $string->trim()->prepend('Laravel');
  5. });
  6. // 'Laravel'

whenNotEmpty

whenNotEmpty メソッドは、文字列が空でない場合に、指定されたクロージャを呼び出します。クロージャが値を返す場合、その値は whenNotEmpty メソッドによっても返されます。クロージャが値を返さない場合、流暢な文字列インスタンスが返されます:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('Framework')->whenNotEmpty(function (Stringable $string) {
  4. return $string->prepend('Laravel ');
  5. });
  6. // 'Laravel Framework'

whenStartsWith

whenStartsWith メソッドは、文字列が指定されたサブ文字列で始まる場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('disney world')->whenStartsWith('disney', function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Disney World'

whenEndsWith

whenEndsWith メソッドは、文字列が指定されたサブ文字列で終わる場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('disney world')->whenEndsWith('world', function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Disney World'

whenExactly

whenExactly メソッドは、文字列が指定された文字列と正確に一致する場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Laravel'

whenNotExactly

whenNotExactly メソッドは、文字列が指定された文字列と正確に一致しない場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Framework'

whenIs

whenIs メソッドは、文字列が指定されたパターンに一致する場合に、指定されたクロージャを呼び出します。アスタリスクはワイルドカード値として使用できます。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('foo/bar')->whenIs('foo/*', function (Stringable $string) {
  4. return $string->append('/baz');
  5. });
  6. // 'foo/bar/baz'

whenIsAscii

whenIsAscii メソッドは、文字列が7ビットASCIIである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Laravel'

whenIsUlid

whenIsUlid メソッドは、文字列が有効なULIDである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
  3. return $string->substr(0, 8);
  4. });
  5. // '01gd6r36'

whenIsUuid

whenIsUuid メソッドは、文字列が有効なUUIDである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('a0a2a2d2-0b87-4a18-83f2-2529882be2de')->whenIsUuid(function (Stringable $string) {
  4. return $string->substr(0, 8);
  5. });
  6. // 'a0a2a2d2'

whenTest

whenTest メソッドは、文字列が指定された正規表現に一致する場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:

  1. use Illuminate\Support\Str;
  2. use Illuminate\Support\Stringable;
  3. $string = Str::of('laravel framework')->whenTest('/laravel/', function (Stringable $string) {
  4. return $string->title();
  5. });
  6. // 'Laravel Framework'

wordCount

wordCount メソッドは、文字列が含む単語の数を返します:

  1. use Illuminate\Support\Str;
  2. Str::of('Hello, world!')->wordCount(); // 2

words

words メソッドは、文字列内の単語の数を制限します。必要に応じて、切り捨てられた文字列に追加される文字列を指定できます:

  1. use Illuminate\Support\Str;
  2. $string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
  3. // Perfectly balanced, as >>>

wrap

wrap メソッドは、指定された文字列を追加の文字列または文字列のペアでラップします:

``````php
use Illuminate\Support\Str;

Str::of(‘Laravel’)->wrap(‘“‘);

// “Laravel”

Str::is(‘is’)->wrap(before: ‘This ‘, after: ‘ Laravel!’);

// This is Laravel!
``````@