イントロダクション
Laravelには、文字列値を操作する様々な関数があります。これらの関数の多くはフレームワーク自体で使用されていますが、便利に感じるなら、あなたのアプリケーションでも自由にご利用ください。
利用可能なメソッド
文字列
Fluent文字列
文字列
__()
__
関数は、指定する翻訳文字列や翻訳キーを言語ファイルを使って翻訳します。
echo __('Welcome to our application');
echo __('messages.welcome');
指定した翻訳文字列や翻訳キーが存在しない場合、__
関数は指定値をそのまま返します。たとえば、上記の場合に翻訳キーが存在しなければ、__
関数はmessages.welcome
を返します。
class_basename()
class_basename
関数は、指定クラスの名前から名前空間を取り除いて返します。
$class = class_basename('Foo\Bar\Baz');
// Baz
e()
e
関数は、PHPのhtmlspecialchars
関数をdouble_encode
オプションにデフォルトでtrue
を指定し、実行します。
echo e('<html>foo</html>');
// <html>foo</html>
preg_replace_array()
preg_replace_array
関数は、指定パターンを順番に配列中の値に置き換えます。
$string = 'The event will take place between :start and :end';
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
Str::after()
Str::after
関数は、指定値に続く文字列をすべて返します。文字列中に指定値が存在しない場合は、文字列全体を返します。
use Illuminate\Support\Str;
$slice = Str::after('This is my name', 'This is');
// ' my name'
Str::afterLast()
Str::afterLast
メソッドは、文字列で指定値が現れる最後の場所から、後ろの部分を返します。文字列中に指定値が存在しない場合は、文字列全体を返します。
use Illuminate\Support\Str;
$slice = Str::afterLast('App\Http\Controllers\Controller', '\');
// 'Controller'
Str::ascii()
Str::ascii
メソッドは文字列をASCII値へ変換しようと試みます。
use Illuminate\Support\Str;
$slice = Str::ascii('û');
// 'u'
Str::before()
Str::before
関数は、文字列中の指定値より前の文字列を全部返します。
use Illuminate\Support\Str;
$slice = Str::before('This is my name', 'my name');
// 'This is '
Str::beforeLast()
Str::beforeLast
メソッドは、文字列で指定値が現れる最後の場所から、前の部分を返します。
use Illuminate\Support\Str;
$slice = Str::beforeLast('This is my name', 'is');
// 'This '
Str::between()
Str::between
メソッドは、2つの値間の部分文字列を返します。
use Illuminate\Support\Str;
$slice = Str::between('This is my name', 'This', 'name');
// ' is my '
Str::betweenFirst()
Str::betweenFirst
メソッドは、2つの値の間にある文字列のうち、可能な限り小さい部分を返します。
use Illuminate\Support\Str;
$slice = Str::betweenFirst('[a] bc [d]', '[', ']');
// 'a'
Str::camel()
Str::camel
メソッドは、文字列をキャメルケース(camelCase
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::camel('foo_bar');
// fooBar
Str::contains()
Str::contains
メソッドは、指定文字列に指定値が含まれているかどうかを判別します。このメソッドは大文字と小文字を区別します。
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'my');
// true
値の配列を渡して、指定文字列に配列内の値が含まれているかどうかを判断することもできます。
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', ['my', 'foo']);
// true
Str::containsAll()
Str::containsAll
メソッドは、指定文字列に指定配列のすべての値が含まれているかどうかを判別します。
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
Str::endsWith()
Str::endsWith
メソッドは、最初の文字列が2つ目の引数の文字列で終わっているか判定します。
use Illuminate\Support\Str;
$result = Str::endsWith('This is my name', 'name');
// true
値の配列を渡し、指定文字列が配列内の値のいずれかで終わるかどうかを判断することもできます。
use Illuminate\Support\Str;
$result = Str::endsWith('This is my name', ['name', 'foo']);
// true
$result = Str::endsWith('This is my name', ['this', 'foo']);
// false
Str::excerpt()
Str::excerpt
メソッドは指定した文字列から、その文字列内のフレーズの最初のインスタンスにマッチする部分を抜き出します。
use Illuminate\Support\Str;
$excerpt = Str::excerpt('This is my name', 'my', [
'radius' => 3
]);
// '...is my na...'
radius
オプションはデフォルトが100
で、抜き出した文字列の両側に表示する文字数を定義します。
さらに、omission
オプションを使い、抜き出した文字列の前後に追加する文字列を定義できます。
use Illuminate\Support\Str;
$excerpt = Str::excerpt('This is my name', 'name', [
'radius' => 3,
'omission' => '(...) '
]);
// '(...) my name'
Str::finish()
Str::finish
メソッドは、指定値で終わっていない場合、その値の単一のインスタンスを文字列に追加します。
use Illuminate\Support\Str;
$adjusted = Str::finish('this/string', '/');
// this/string/
$adjusted = Str::finish('this/string/', '/');
// this/string/
Str::headline()
Str::headline
メソッドは、大・小文字、ハイフン、アンダースコアにより区切られた文字列から、各単語の最初の文字を大文字にしたスペース区切りの文字列へ変換します。
use Illuminate\Support\Str;
$headline = Str::headline('steve_jobs');
// Steve Jobs
$headline = Str::headline('EmailNotificationSent');
// Email Notification Sent
Str::inlineMarkdown()
Str::inlineMarkdown
メソッドは、GitHub仕様のMarkdownをCommonMarkにより、インラインHTMLへ変換します。しかし、markdown
メソッドとは異なり、生成したすべてのHTMLをブロックレベルの要素中へラップはできません。
use Illuminate\Support\Str;
$html = Str::inlineMarkdown('**Laravel**');
// <strong>Laravel</strong>
Str::is()
Str::is
メソッドは、指定文字列が指定パターンに一致するかどうかを判別します。アスタリスクをワイルドカード値として使用できます。
use Illuminate\Support\Str;
$matches = Str::is('foo*', 'foobar');
// true
$matches = Str::is('baz*', 'foobar');
// false
Str::isAscii()
Str::isAscii
メソッドは、指定文字列が7ビットASCIIであるかを判定します。
use Illuminate\Support\Str;
$isAscii = Str::isAscii('Taylor');
// true
$isAscii = Str::isAscii('ü');
// false
Str::isJson()
Str::isJson
メソッドは、指定文字列が有効なJSONであるかを判定します。
use Illuminate\Support\Str;
$result = Str::isJson('[1,2,3]');
// true
$result = Str::isJson('{"first": "John", "last": "Doe"}');
// true
$result = Str::isJson('{first: "John", last: "Doe"}');
// false
Str::isUrl()
Str::isUrl
メソッドは、指定文字列が有効なURLかを判定します。
use Illuminate\Support\Str;
$isUrl = Str::isUrl('http://example.com');
// true
$isUrl = Str::isUrl('laravel');
// false
Str::isUlid()
Str::isUlid
メソッドは、指定文字列が有効なULIDであることを判定します。
use Illuminate\Support\Str;
$isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40');
// true
$isUlid = Str::isUlid('laravel');
// false
Str::isUuid()
Str::isUuid
メソッドは、指定した文字列が有効なUUIDであることを判定します。
use Illuminate\Support\Str;
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
// true
$isUuid = Str::isUuid('laravel');
// false
Str::kebab()
Str::kebab
メソッドは、指定した文字列をケバブケース(kebab-case
)に変換します。
use Illuminate\Support\Str;
$converted = Str::kebab('fooBar');
// foo-bar
Str::lcfirst()
Str::lcfirst
メソッドは、指定した文字列の最初の文字を小文字に変換して返します。
use Illuminate\Support\Str;
$string = Str::lcfirst('Foo Bar');
// foo Bar
Str::length()
Str::length
メソッドは、指定文字列の長さを返します。
use Illuminate\Support\Str;
$length = Str::length('Laravel');
// 7
Str::limit()
Str::limit
メソッドは、指定文字列を指定する長さへ切り捨てます。
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
// The quick brown fox...
メソッドに3番目の引数を渡し、切り捨てる文字列の末尾へ追加する文字列を変更できます。
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
Str::lower()
Str::lower
メソッドは指定文字列を小文字に変換します。
use Illuminate\Support\Str;
$converted = Str::lower('LARAVEL');
// laravel
Str::markdown()
Str::markdown
メソッドは、GitHub風なマークダウンをHTMLへ、CommonMarkを用い変換します。
use Illuminate\Support\Str;
$html = Str::markdown('# Laravel');
// <h1>Laravel</h1>
$html = Str::markdown('# Taylor <b>Otwell</b>', [
'html_input' => 'strip',
]);
// <h1>Taylor Otwell</h1>
Str::mask()
Str::mask
メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号などの文字列の一部を難読化するために使用します。
use Illuminate\Support\Str;
$string = Str::mask('taylor@example.com', '*', 3);
// tay***************
必要であれば、mask
メソッドの第3引数に負の数を指定し、文字列の最後から指定する文字数分戻った箇所からマスキングを開始するように指示できます。
$string = Str::mask('taylor@example.com', '*', -15, 3);
// tay***@example.com
Str::orderedUuid()
Str::orderedUuid
メソッドは、インデックス付きデータベース列に効率的に格納できる「タイムスタンプファースト」UUIDを生成します。このメソッドを使用して生成した各UUIDは、以前にこのメソッドを使用して生成されたUUIDの後にソートされます。
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
Str::padBoth()
Str::padBoth
メソッドは、PHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の両側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::padBoth('James', 10, '_');
// '__James___'
$padded = Str::padBoth('James', 10);
// ' James '
Str::padLeft()
String::padLeft
メソッドは、PHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の左側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::padLeft('James', 10, '-=');
// '-=-=-James'
$padded = Str::padLeft('James', 10);
// ' James'
Str::padRight()
String::padRight
メソッドは、PHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の右側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::padRight('James', 10, '-');
// 'James-----'
$padded = Str::padRight('James', 10);
// 'James '
Str::password()
Str::password
メソッドは、指定した長さの安全でランダムなパスワードを生成します。パスワードは文字、数字、シンボル、スペースの組み合わせで構成します。パスワードの長さは、デフォルトで32文字です。
use Illuminate\Support\Str;
$password = Str::password();
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
$password = Str::password(12);
// 'qwuar>#V|i]N'
Str::plural()
Str::plural
メソッドは、単数形の単語文字列を複数形に変換します。この関数は、Laravelの複数形化機能により、どんな言語もサポートしています。
use Illuminate\Support\Str;
$plural = Str::plural('car');
// cars
$plural = Str::plural('child');
// children
整数をこのメソッドの第2引数に指定することで、文字列の単数形と複数形を切り替えて取得できます。
use Illuminate\Support\Str;
$plural = Str::plural('child', 2);
// children
$singular = Str::plural('child', 1);
// child
Str::pluralStudly()
Str::pluralStudly
メソッドは、アッパーキャメルケースでフォーマットされた文字列の単語を複数形に変換します。この関数は、Laravelの複数形化機能により、どんな言語もサポートしています。
use Illuminate\Support\Str;
$plural = Str::pluralStudly('VerifiedHuman');
// VerifiedHumans
$plural = Str::pluralStudly('UserFeedback');
// UserFeedback
整数をこのメソッドの第2引数に指定することで、文字列の単数形と複数形を切り替えて取得できます。
use Illuminate\Support\Str;
$plural = Str::pluralStudly('VerifiedHuman', 2);
// VerifiedHumans
$singular = Str::pluralStudly('VerifiedHuman', 1);
// VerifiedHuman
Str::random()
Str::random
メソッドは指定した長さのランダムな文字列を生成します。このメソッドは、PHPのrandom_bytes
関数を使用します。
use Illuminate\Support\Str;
$random = Str::random(40);
Str::remove()
Str::remove
メソッドは、文字列から指定する値または値の配列を削除します。
use Illuminate\Support\Str;
$string = 'Peter Piper picked a peck of pickled peppers.';
$removed = Str::remove('e', $string);
// Ptr Pipr pickd a pck of pickld ppprs.
文字列を削除するときにケースを無視するには、remove
メソッドの3番目の引数にfalse
を渡してください。
Str::repeat()
Str::repeat
メソッドは、指定文字列を繰り返します。
use Illuminate\Support\Str;
$string = 'a';
$repeat = Str::repeat($string, 5);
// aaaaa
Str::replace()
Str::replace
メソッドは、文字列内の指定した文字列を置き換えます。
use Illuminate\Support\Str;
$string = 'Laravel 8.x';
$replaced = Str::replace('8.x', '9.x', $string);
// Laravel 9.x
replace
メソッドは、caseSensitive
引数も指定できます。デフォルトでreplace
メソッドは、大・小文字を区別します。
Str::replace('Framework', 'Laravel', caseSensitive: false);
Str::replaceArray()
Str::replaceArray
メソッドは配列を使い、文字列を指定値へ順番に置き換えます。
use Illuminate\Support\Str;
$string = 'The event will take place between ? and ?';
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
Str::replaceFirst()
Str::replaceFirst
メソッドは、文字列中で最初に出現した値を指定値で置き換えます。
use Illuminate\Support\Str;
$replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog');
// a quick brown fox jumps over the lazy dog
Str::replaceLast()
Str::replaceLast
メソッドは、文字列中で最後に出現した値を指定値で置き換えます。
use Illuminate\Support\Str;
$replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog');
// the quick brown fox jumps over a lazy dog
Str::replaceStart()
Str::replaceStart
メソッドは、指定値が文字列の最初に現れる場合のみ、その値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');
// Laravel World
$replaced = Str::replaceStart('World', 'Laravel', 'Hello World');
// Hello World
Str::replaceEnd()
Str::replaceEnd
メソッドは、指定値が文字列の最後に現れる場合のみ、その値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::replaceEnd('World', 'Laravel', 'Hello World');
// Hello Laravel
$replaced = Str::replaceEnd('Hello', 'Laravel', 'Hello World');
// Hello World
Str::reverse()
Str::reverse
メソッドは、指定文字列を逆順にします。
use Illuminate\Support\Str;
$reversed = Str::reverse('Hello World');
// dlroW olleH
Str::singular()
Str::singular
メソッドは複数形を単数形へ変換します。この関数は、Laravelの複数形化機能により、どんな言語もサポートしています。
use Illuminate\Support\Str;
$singular = Str::singular('cars');
// car
$singular = Str::singular('children');
// child
Str::slug()
Str::slug
メソッドは指定された文字列から、URLフレンドリーな「スラグ」を生成します。
use Illuminate\Support\Str;
$slug = Str::slug('Laravel 5 Framework', '-');
// laravel-5-framework
Str::snake()
Str::snake
メソッドは文字列をスネークケース(snake_case
)に変換します。
use Illuminate\Support\Str;
$converted = Str::snake('fooBar');
// foo_bar
$converted = Str::snake('fooBar', '-');
// foo-bar
Str::squish()
Str::squish
メソッドは、単語間の余分な空白を含め、文字列から余分な空白をすべて削除します。
use Illuminate\Support\Str;
$string = Str::squish(' laravel framework ');
// laravel framework
Str::start()
Str::start
メソッドは、文字列が指定値で開始されていない場合、その値の単一インスタンスを文字列の前に追加します。
use Illuminate\Support\Str;
$adjusted = Str::start('this/string', '/');
// /this/string
$adjusted = Str::start('/this/string', '/');
// /this/string
Str::startsWith()
Str::startsWith
メソッドは指定文字列が、2番めの引数の文字列で始まっているか判定します。
use Illuminate\Support\Str;
$result = Str::startsWith('This is my name', 'This');
// true
可能な値の配列が渡された場合、startsWith
メソッドは、文字列が与えられた値のいずれかで始まる場合にtrue
を返します。
$result = Str::startsWith('This is my name', ['This', 'That', 'There']);
// true
Str::studly()
Str::studly
メソッドは文字列をアッパーキャメルケース(StudlyCase
)に変換します。
use Illuminate\Support\Str;
$converted = Str::studly('foo_bar');
// FooBar
Str::substr()
Str::substr
メソッドは開始位置と文字列長の引数で指定した部分文字列を返します。
use Illuminate\Support\Str;
$converted = Str::substr('The Laravel Framework', 4, 7);
// Laravel
Str::substrCount()
Str::substrCount
メソッドは、指定する文字列内に指定値がいくつ存在しているか返します。
use Illuminate\Support\Str;
$count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like');
// 2
Str::substrReplace()
Str::substrReplace
メソッドは、文字列の一部分のテキストを置き換えます。第3引数で指定した位置から始まり、第4引数で指定した文字数分を置き換えます。このメソッドの第4引数へ0
を渡すと、文字列内の既存の文字を一切置き換えず、指定位置に文字列を挿入します。
use Illuminate\Support\Str;
$result = Str::substrReplace('1300', ':', 2);
// 13:
$result = Str::substrReplace('1300', ':', 2, 0);
// 13:00
Str::swap()
Str::swap
メソッドは、PHPのstrtr
関数を使い、指定した文字列中の複数の値を置き換えます。
use Illuminate\Support\Str;
$string = Str::swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
], 'Tacos are great!');
// Burritos are fantastic!
Str::title()
Str::title
メソッドは、指定された文字列をタイトルケース(Title Case
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::title('a nice title uses the correct case');
// A Nice Title Uses The Correct Case
Str::toHtmlString()
Str::toHtmlString
メソッドは、文字列インスタンスをIlluminate\Support\HtmlString
インスタンスに変換し、Blade
テンプレートで表示できるようにします。
use Illuminate\Support\Str;
$htmlString = Str::of('Nuno Maduro')->toHtmlString();
Str::ucfirst()
Str::ucfirst
メソッドは、指定文字列の最初の文字を大文字にして返します。
use Illuminate\Support\Str;
$string = Str::ucfirst('foo bar');
// Foo bar
Str::ucsplit()
Str::ucsplit
メソッドは、指定した文字列を文字列を大文字で分割して配列にします。
use Illuminate\Support\Str;
$segments = Str::ucsplit('FooBar');
// [0 => 'Foo', 1 => 'Bar']
Str::upper()
Str::upper
メソッドは、指定文字列を大文字に変換します。
use Illuminate\Support\Str;
$string = Str::upper('laravel');
// LARAVEL
Str::ulid()
Str::ulid
メソッドは、コンパクトで時間順に並んだ一意の識別子であるULIDを生成します。
use Illuminate\Support\Str;
return (string) Str::ulid();
// 01gd6r360bp37zj17nxb55yv40
指定したULIDが作成された日時を表すIlluminate\Support\Carbon
日付インスタンスを取得したい場合、LaravelのCarbon統合が提供しているcreateFromId
メソッドを使用してください。
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
$date = Carbon::createFromId((string) Str::ulid());
Str::uuid()
Str::uuid
メソッドは、UUID(バージョン4)を生成します。
use Illuminate\Support\Str;
return (string) Str::uuid();
Str::wordCount()
Str::wordCount
関数は、文字列に含まれる単語の数を返します。
use Illuminate\Support\Str;
Str::wordCount('Hello, world!'); // 2
Str::wordWrap()
Str::wordWrap
メソッドは、文字列を指定文字数で折り返します。
use Illuminate\Support\Str;
$text = "The quick brown fox jumped over the lazy dog."
Str::wordWrap($text, characters: 20, break: "<br />\n");
/*
The quick brown fox<br />
jumped over the lazy<br />
dog.
*/
Str::words()
Str::words
メソッドは、文字列内の単語数を制限します。3番目の引数で、切り捨てた文字列の末尾に追加する文字列を指定できます。
use Illuminate\Support\Str;
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
// Perfectly balanced, as >>>
Str::wrap()
Str::wrap
メソッドは、指定文字列を追加の文字列か文字列のペアでラップします。
use Illuminate\Support\Str;
Str::wrap('Laravel', '"');
// "Laravel"
Str::wrap('is', before: 'This ', after: ' Laravel!');
// This is Laravel!
str()
str
関数は、指定した文字列の新しいIlluminate\Support\Stringable
インスタンスを返します。この関数は
Str::of
メソッドと等価です。
$string = str('Taylor')->append(' Otwell');
// 'Taylor Otwell'
str
関数に引数を与えなかった場合、Illuminate\Support\Str
のインスタンスを返します。
$snake = str()->snake('FooBar');
// 'foo_bar'
trans()
trans
関数は、指定した翻訳キーを言語ファイルを使い、翻訳します。
echo trans('messages.welcome');
指定した翻訳キーが存在しない場合、trans
関数は指定値をそのまま返します。上記の場合に翻訳キーが存在しなければ、messages.welcome
が返ります。
trans_choice()
trans_choice
関数は、数値をもとにし、指定翻訳キーを翻訳します。
echo trans_choice('messages.notifications', $unreadCount);
指定した翻訳キーが存在しない場合、trans_choice
関数は指定値をそのまま返します。上記の場合に翻訳キーが存在しなければ、messages.welcome
が返ります。
Fluent文字列
Fluent文字列は読み書きしやすい(fluent)、オブジェクト指向で、複数の文字列操作をチェーンできるインターフェイスを提供します。古典的な文字列操作に比較すると、複数の文字列操作を読みやすい文法で使用できます。
after
after
関数は、指定値に続く文字列をすべて返します。文字列中に指定値が存在しない場合は、文字列全体を返します。
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->after('This is');
// ' my name'
afterLast
afterLast
メソッドは、文字列で指定値が最後に現れる場所から、後ろの部分を返します。文字列中に指定値が存在しない場合は、文字列全体を返します。
use Illuminate\Support\Str;
$slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
// 'Controller'
append
append
メソッドは、指定値を文字列へ追加します。
use Illuminate\Support\Str;
$string = Str::of('Taylor')->append(' Otwell');
// 'Taylor Otwell'
ascii
ascii
メソッドは、文字列をアスキー値への変換を試みます。
use Illuminate\Support\Str;
$string = Str::of('ü')->ascii();
// 'u'
basename
basename
メソッドは、文字列の最後の名前部分を返します。
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->basename();
// 'baz'
必要であれば、最後の部分から削除したい「拡張子」を指定できます。
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
// 'baz'
before
before
関数は、文字列中の指定値より前の文字列を全部返します
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->before('my name');
// 'This is '
beforeLast
beforeLast
メソッドは、文字列中で最初に指定値が現れる場所から、前の部分を返します。
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->beforeLast('is');
// 'This '
between
between
メソッドは、2つの値の間にある文字列を返します。
use Illuminate\Support\Str;
$converted = Str::of('This is my name')->between('This', 'name');
// ' is my '
betweenFirst
betweenFirst
メソッドは、2つの値の間にある文字列のうち、可能な限り小さい部分を返します。
use Illuminate\Support\Str;
$converted = Str::of('[a] bc [d]')->betweenFirst('[', ']');
// 'a'
camel
camel
メソッドは、文字列をキャメルケース(camelCase
)へ変換します
use Illuminate\Support\Str;
$converted = Str::of('foo_bar')->camel();
// fooBar
classBasename
classBasename
メソッドは、指定したクラスから名前空間を削除したクラス名を返す。
use Illuminate\Support\Str;
$class = Str::of('Foo\Bar\Baz')->classBasename();
// Baz
contains
contains
メソッドは、指定された文字列に指定された値が含まれているかどうかを判別します。このメソッドは大文字と小文字を区別します。
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains('my');
// true
値の配列を渡して、指定文字列に配列内の値が含まれているかどうかを判断することもできます。
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains(['my', 'foo']);
// true
containsAll
containsAll
メソッドは、指定文字列に指定配列のすべての値が含まれているかどうかを判別します。
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
// true
dirname
dirname
メソッドは文字列の親ディレクトリ名部分を返します。
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->dirname();
// '/foo/bar'
必要に応じて、文字列から削除するディレクトリレベル数を指定できます。
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->dirname(2);
// '/foo'
excerpt
excerpt
メソッドは文字列から、その文字列内のフレーズの最初のインスタンスにマッチする部分を抜粋して抜き出します。
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('my', [
'radius' => 3
]);
// '...is my na...'
radius
オプションはデフォルトが100
で、抜き出した文字列の両側に表示する文字数を定義します。
さらに、omission
オプションを使い、抜き出した文字列の前後に追加する文字列を定義できます。
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('name', [
'radius' => 3,
'omission' => '(...) '
]);
// '(...) my name'
endsWith
endsWith
メソッドは、文字列が指定値で終わっているか判定します。
use Illuminate\Support\Str;
$result = Str::of('This is my name')->endsWith('name');
// true
値の配列を渡し、指定文字列が配列内の値のいずれかで終わるかどうかを判断することもできます。
use Illuminate\Support\Str;
$result = Str::of('This is my name')->endsWith(['name', 'foo']);
// true
$result = Str::of('This is my name')->endsWith(['this', 'foo']);
// false
exactly
exactly
メソッドは、文字列と指定値が完全に一致することを判定します。
use Illuminate\Support\Str;
$result = Str::of('Laravel')->exactly('Laravel');
// true
explode
explode
メソッドは文字列を指定デリミッタで分割し、分割した文字列を含むコレクションを返します。
use Illuminate\Support\Str;
$collection = Str::of('foo bar baz')->explode(' ');
// collect(['foo', 'bar', 'baz'])
finish
finish
メソッドは、文字列が指定値で終わっていない場合、その値の単一のインスタンスを追加します。
use Illuminate\Support\Str;
$adjusted = Str::of('this/string')->finish('/');
// this/string/
$adjusted = Str::of('this/string/')->finish('/');
// this/string/
headline
headline
メソッドは、大小文字、ハイフン、アンダースコアで区切られた文字列の各単語の頭文字を大文字にし、スペースで区切った文字列へ変換します。
use Illuminate\Support\Str;
$headline = Str::of('taylor_otwell')->headline();
// Taylor Otwell
$headline = Str::of('EmailNotificationSent')->headline();
// Email Notification Sent
inlineMarkdown
inlineMarkdown
メソッドは、GitHub仕様のMarkdownをCommonMarkにより、インラインHTMLへ変換します。しかし、markdown
メソッドとは異なり、生成したすべてのHTMLをブロックレベルの要素中へラップはできません。
use Illuminate\Support\Str;
$html = Str::of('**Laravel**')->inlineMarkdown();
// <strong>Laravel</strong>
is
is
メソッドは、指定文字列が指定パターンに一致するかどうかを判別します。アスタリスクはワイルドカード値として使用できます
use Illuminate\Support\Str;
$matches = Str::of('foobar')->is('foo*');
// true
$matches = Str::of('foobar')->is('baz*');
// false
isAscii
isAscii
メソッドは、文字列がASCII文字列であるか判定します。
use Illuminate\Support\Str;
$result = Str::of('Taylor')->isAscii();
// true
$result = Str::of('ü')->isAscii();
// false
isEmpty
isEmpty
メソッドは、文字列が空であるか判定します。
use Illuminate\Support\Str;
$result = Str::of(' ')->trim()->isEmpty();
// true
$result = Str::of('Laravel')->trim()->isEmpty();
// false
isNotEmpty
isNotEmpty
メソッドは、文字列が空でないかを判定します。
use Illuminate\Support\Str;
$result = Str::of(' ')->trim()->isNotEmpty();
// false
$result = Str::of('Laravel')->trim()->isNotEmpty();
// true
isJson
isJson
メソッドは、指定文字列が有効なJSONであるかを判定します。
use Illuminate\Support\Str;
$result = Str::of('[1,2,3]')->isJson();
// true
$result = Str::of('{"first": "John", "last": "Doe"}')->isJson();
// true
$result = Str::of('{first: "John", last: "Doe"}')->isJson();
// false
isUlid
isUlid
メソッドは、指定文字列が有効なULIDであることを判定します。
use Illuminate\Support\Str;
$result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid();
// true
$result = Str::of('Taylor')->isUlid();
// false
isUrl
isUrl
メソッドは、指定文字列がURLであるか判定します。
use Illuminate\Support\Str;
$result = Str::of('http://example.com')->isUrl();
// true
$result = Str::of('Taylor')->isUrl();
// false
isUuid
isUuid
メソッドは、文字列がUUIDかを判定します。
use Illuminate\Support\Str;
$result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
// true
$result = Str::of('Taylor')->isUuid();
// false
kebab
kebab
メソッドは、文字列をケバブケース(kebab-case
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::of('fooBar')->kebab();
// foo-bar
lcfirst
lcfirst
メソッドは、指定した文字列の最初の文字を小文字にしたものを返します。
use Illuminate\Support\Str;
$string = Str::of('Foo Bar')->lcfirst();
// foo Bar
length
length
メソッドは、文字列の長さを返します。
use Illuminate\Support\Str;
$length = Str::of('Laravel')->length();
// 7
limit
limit
メソッドは、指定文字列を指定した長さに切り捨てます。
use Illuminate\Support\Str;
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
// The quick brown fox...
2番目の引数を渡して、切り捨てた文字列の末尾に追加する文字列を変更することもできます。
use Illuminate\Support\Str;
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
// The quick brown fox (...)
lower
lower
メソッドは、文字列を小文字に変換します。
use Illuminate\Support\Str;
$result = Str::of('LARAVEL')->lower();
// 'laravel'
ltrim
ltrim
メソッドは、文字列の左側をトリムします。
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->ltrim();
// 'Laravel '
$string = Str::of('/Laravel/')->ltrim('/');
// 'Laravel/'
markdown
markdown
メソッドはGitHub風マークダウンをHTMLに変換します。
use Illuminate\Support\Str;
$html = Str::of('# Laravel')->markdown();
// <h1>Laravel</h1>
$html = Str::of('# Taylor <b>Otwell</b>')->markdown([
'html_input' => 'strip',
]);
// <h1>Taylor Otwell</h1>
mask
mask
メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号など、文字列の一部を難読化するのに使用します。
use Illuminate\Support\Str;
$string = Str::of('taylor@example.com')->mask('*', 3);
// tay***************
必要であれば、mask
メソッドの第3・4引数に負の数を指定し、文字列の最後から指定する文字数分戻った箇所からマスキングを開始するように指示できます。
$string = Str::of('taylor@example.com')->mask('*', -15, 3);
// tay***@example.com
$string = Str::of('taylor@example.com')->mask('*', 4, -4);
// tayl**********.com
match
match
メソッドは、指定した正規表現パターンに一致する部分文字列を返します。
use Illuminate\Support\Str;
$result = Str::of('foo bar')->match('/bar/');
// 'bar'
$result = Str::of('foo bar')->match('/foo (.*)/');
// 'bar'
matchAll
matchAll
メソッドは、指定した正規表現パターンに一致した部分文字列を含むコレクションを返します。
use Illuminate\Support\Str;
$result = Str::of('bar foo bar')->matchAll('/bar/');
// collect(['bar', 'bar'])
正規表現にマッチンググループを指定した場合は、そのグループに一致するコレクションを返します。
use Illuminate\Support\Str;
$result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
// collect(['un', 'ly']);
一致しなかった場合は、空のコレクションを返します。
isMatch
isMatch
メソッドは、文字列が指定正規表現にマッチした場合にtrue
を返します。
use Illuminate\Support\Str;
$result = Str::of('foo bar')->isMatch('/foo (.*)/');
// true
$result = Str::of('laravel')->isMatch('/foo (.*)/');
// false
newLine
newLine
メソッドは、文字列に「行末」コードを追加します。
use Illuminate\Support\Str;
$padded = Str::of('Laravel')->newLine()->append('Framework');
// 'Laravel
// Framework'
padBoth
padBoth
メソッドはPHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の両側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::of('James')->padBoth(10, '_');
// '__James___'
$padded = Str::of('James')->padBoth(10);
// ' James '
padLeft
padLeft
メソッドはPHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の左側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::of('James')->padLeft(10, '-=');
// '-=-=-James'
$padded = Str::of('James')->padLeft(10);
// ' James'
padRight
padRight
メソッドはPHPのstr_pad
関数をラップし、最後の文字列が目的の長さに達するまで、文字列の右側を別の文字列でパディングします。
use Illuminate\Support\Str;
$padded = Str::of('James')->padRight(10, '-');
// 'James-----'
$padded = Str::of('James')->padRight(10);
// 'James '
pipe
pipe
メソッドは、現在の値を指定Callableへ渡すことで、文字列を変換します。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: ');
// 'Checksum: a5c95b86291ea299fcbe64458ed12702'
$closure = Str::of('foo')->pipe(function (Stringable $str) {
return 'bar';
});
// 'bar'
plural
plural
メソッドは、単数形の単語文字列を複数形に変換します。この関数は、Laravelの複数形化機能により、どんな言語もサポートしています。
use Illuminate\Support\Str;
$plural = Str::of('car')->plural();
// cars
$plural = Str::of('child')->plural();
// children
整数をこのメソッドの第2引数に指定することで、文字列の単数形と複数形を切り替えて取得できます。
use Illuminate\Support\Str;
$plural = Str::of('child')->plural(2);
// children
$plural = Str::of('child')->plural(1);
// child
prepend
prepend
メソッドは、指定値を文字列の先頭へ追加します。
use Illuminate\Support\Str;
$string = Str::of('Framework')->prepend('Laravel ');
// Laravel Framework
remove
remove
メソッドは、指定する値か文字列の配列を文字列から削除します。
use Illuminate\Support\Str;
$string = Str::of('Arkansas is quite beautiful!')->remove('quite');
// Arkansas is beautiful!
文字列削除時にケースを無視するため2番目のパラメータへfalse
を渡すこともできます。
repeat
repeat
メソッドは、指定文字列を繰り返します。
use Illuminate\Support\Str;
$repeated = Str::of('a')->repeat(5);
// aaaaa
replace
replace
メソッドは、文字列中の指定値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
// Laravel 7.x
replace
メソッドは、caseSensitive
引数も指定できます。デフォルトでreplace
メソッドは、大・小文字を区別します。
$replaced = Str::of('macOS 13.x')->replace(
'macOS', 'iOS', caseSensitive: false
);
replaceArray
replaceArray
メソッドは、配列を使用して文字列中の指定値を置き換えます。
use Illuminate\Support\Str;
$string = 'The event will take place between ? and ?';
$replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
// The event will take place between 8:30 and 9:00
replaceFirst
replaceFirst
メソッドは、文字列中で最初に現れた指定値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a');
// a quick brown fox jumps over the lazy dog
replaceLast
replaceLast
メソッドは文字列中で最後に現れた指定値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a');
// the quick brown fox jumps over a lazy dog
replaceMatches
replaceMatches
メソッドは、パターンに一致する文字列のすべての部分を、指定した置換文字列で置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
// '15015551000'
replaceMatches
メソッドは、指定したパターンに一致する文字列の各部分で呼び出されるクロージャも受け入れます。これにより、クロージャ内で置換ロジックを実行し、置換した値を返せます。
use Illuminate\Support\Str;
$replaced = Str::of('123')->replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
});
// '[1][2][3]'
replaceStart
replaceStart
メソッドは、指定値が文字列の最初に現れる場合のみ、その値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('Hello World')->replaceStart('Hello', 'Laravel');
// Laravel World
$replaced = Str::of('Hello World')->replaceStart('World', 'Laravel');
// Hello World
replaceEnd
replaceEnd
メソッドは、与えられた値が文字列の最後に現れる場合のみ、その値を置き換えます。
use Illuminate\Support\Str;
$replaced = Str::of('Hello World')->replaceEnd('World', 'Laravel');
// Hello Laravel
$replaced = Str::of('Hello World')->replaceEnd('Hello', 'Laravel');
// Hello World
rtrim
rtrim
メソッドは、指定した文字列の右側をトリムします。
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->rtrim();
// ' Laravel'
$string = Str::of('/Laravel/')->rtrim('/');
// '/Laravel'
scan
scan
メソッドは、sscanf
PHP関数がサポートするフォーマットに従い、文字列からコレクションへの入力をパースします。
use Illuminate\Support\Str;
$collection = Str::of('filename.jpg')->scan('%[^.].%s');
// collect(['filename', 'jpg'])
singular
singular
メソッドは、単語を単数形に変換します。この関数は、Laravelの複数形化機能により、どんな言語もサポートしています。
use Illuminate\Support\Str;
$singular = Str::of('cars')->singular();
// car
$singular = Str::of('children')->singular();
// child
slug
slug
メソッドは、文字列をURLフレンドリーな「スラグ」へ変換します。
use Illuminate\Support\Str;
$slug = Str::of('Laravel Framework')->slug('-');
// laravel-framework
snake
The snake
method converts the given string to
snake
メソッドは、文字列をスネークケース(snake_case
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::of('fooBar')->snake();
// foo_bar
split
split
メソッドは正規表現を使い文字列をコレクションへ分割します。
use Illuminate\Support\Str;
$segments = Str::of('one, two, three')->split('/[\s,]+/');
// collect(["one", "two", "three"])
squish
squish
メソッドは、単語間の余分な空白を含め、文字列から余分な空白をすべて削除します。
use Illuminate\Support\Str;
$string = Str::of(' laravel framework ')->squish();
// laravel framework
start
start
メソッドは、文字列が指定値で開始されていない場合、その値の単一のインスタンスを追加します。
use Illuminate\Support\Str;
$adjusted = Str::of('this/string')->start('/');
// /this/string
$adjusted = Str::of('/this/string')->start('/');
// /this/string
startsWith
startsWith
メソッドは、文字列が指定値から始まっているかを判定します。
use Illuminate\Support\Str;
$result = Str::of('This is my name')->startsWith('This');
// true
studly
studly
メソッドは、文字列をアッパーキャメルケース(StudlyCase
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::of('foo_bar')->studly();
// FooBar
substr
substr
メソッドは、引数で指定された開始位置と長さの部分文字列を返します。
use Illuminate\Support\Str;
$string = Str::of('Laravel Framework')->substr(8);
// Framework
$string = Str::of('Laravel Framework')->substr(8, 5);
// Frame
substrReplace
substrReplace
メソッドは、文字列の一部分のテキストを置き換えるもので、第2引数で指定した位置から始まり、第3引数で指定した文字数分を置き換えます。このメソッドの第3引数に0
を渡すと、文字列内の既存の文字を一切置き換えることなく、指定された位置に文字列を挿入します。
use Illuminate\Support\Str;
$string = Str::of('1300')->substrReplace(':', 2);
// 13:
$string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
// The Laravel Framework
swap
swap
メソッドは、PHPのstrtr
関数を用いて、文字列内の複数の値を置き換えます。
use Illuminate\Support\Str;
$string = Str::of('Tacos are great!')
->swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
]);
// Burritos are fantastic!
tap
tap
メソッドは文字列を指定クロージャへ渡し、その文字列自体に影響を与えずに文字列を調べ操作することができます。クロージャが返す値に関係なく、tap
メソッドはオリジナルの文字列を返します。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Laravel')
->append(' Framework')
->tap(function (Stringable $string) {
dump('String after append: '.$string);
})
->upper();
// LARAVEL FRAMEWORK
test
test
メソッドは、文字列が指定する正規表現パターンと一致するか判定します。
use Illuminate\Support\Str;
$result = Str::of('Laravel Framework')->test('/Laravel/');
// true
title
title
メソッドは、文字列をタイトルケース(Title Case
)へ変換します。
use Illuminate\Support\Str;
$converted = Str::of('a nice title uses the correct case')->title();
// A Nice Title Uses The Correct Case
trim
trim
メソッドは、文字列をトリムします。
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->trim();
// 'Laravel'
$string = Str::of('/Laravel/')->trim('/');
// 'Laravel'
ucfirst
ucfirst
メソッドは、文字列の最初の1文字目を大文字にします。
use Illuminate\Support\Str;
$string = Str::of('foo bar')->ucfirst();
// Foo bar
ucsplit
ucsplit
メソッドは、指定した文字列を文字列を大文字で分割して配列にします。
use Illuminate\Support\Str;
$string = Str::of('Foo Bar')->ucsplit();
// collect(['Foo', 'Bar'])
upper
upper
メソッドは、文字列を大文字に変換します。
use Illuminate\Support\Str;
$adjusted = Str::of('laravel')->upper();
// LARAVEL
when
when
メソッドは指定条件がtrue
の場合、指定したクロージャを呼び出します。クロージャは、fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Taylor')
->when(true, function (Stringable $string) {
return $string->append(' Otwell');
});
// 'Taylor Otwell'
必要であれば、3番目のパラメータとして別のクロージャをwhen
メソッドに渡せます。このクロージャは、条件パラメータがfalse
と評価された場合に実行します。
whenContains
whenContains
メソッドは、文字列が指定値を含んでいる場合に、渡したクロージャを呼び出します。クロージャは、Fluent文字列のインスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContains('tony', function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
必要であれば、when
メソッドの第3パラメータへ、もう一つクロージャを渡せます。このクロージャは、文字列が指定値を含んでいない場合に実行されます。
値の配列を渡して、指定文字列に配列内の値が含まれているかどうかを判断することもできます。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContains(['tony', 'hulk'], function (Stringable $string) {
return $string->title();
});
// Tony Stark
whenContainsAll
whenContainsAll
メソッドは、文字列が指定する部分文字列をすべて含んでいる場合に、指定クロージャを呼び出します。クロージャは、Fluent文字列のインスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
必要であれば、3番目のパラメータとして別のクロージャをwhen
メソッドに渡せます。このクロージャは、条件パラメータがfalse
と評価された場合に実行します。
whenEmpty
文字列が空の場合、whenEmpty
メソッドは指定されたクロージャを呼び出します。クロージャが値を返す場合、その値をwhenEmpty
メソッドも返します。クロージャが値を返さない場合、fluent文字列インスタンスを返します。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of(' ')->whenEmpty(function (Stringable $string) {
return $string->trim()->prepend('Laravel');
});
// 'Laravel'
whenNotEmpty
whenNotEmpty
メソッドは文字列が空でない場合、指定するクロージャを呼び出します。クロージャが値を返す場合は、whenNotEmpty
メソッドもその値を返します
。クロージャが値を返さない場合は、Fluent文字列インスタンスを返します。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Framework')->whenNotEmpty(function (Stringable $string) {
return $string->prepend('Laravel ');
});
// 'Laravel Framework'
whenStartsWith
whenStartsWith
メソッドは、文字列が指定する部分文字列から始まる場合に、指定クロージャを呼び出します。クロージャは、Fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenStartsWith('disney', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenEndsWith
whenEndsWith
メソッドは、文字列が指定した部分文字列で終了する場合に、指定クロージャを呼び出します。クロージャは、Fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenEndsWith('world', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenExactly
whenExactly
メソッドは、文字列が指定文字列と厳密に一致する場合に、指定クロージャを呼び出します。クロージャは、Fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenNotExactly
whenNotExactly
メソッドは、文字列が指定文字列と厳密に一致しない場合に、指定クロージャを呼び出します。クロージャは、Fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Framework'
whenIs
whenIs
メソッドは、文字列が与えられたパターンにマッチする場合、指定クロージャを呼び出します。アスタリスクはワイルドカードとして使用できます。クロージャはFluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('foo/bar')->whenIs('foo/*', function (Stringable $string) {
return $string->append('/baz');
});
// 'foo/bar/baz'
whenIsAscii
whenIsAscii
メソッドは、文字列が7bitのASCIIの場合、クロージャを呼び出します。クロージャはFluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenIsUlid
whenIsUlid
メソッドは、文字列が有効なULIDである場合、指定するクロージャを呼び出します。クロージャは、Fluent文字列のインスタンスを受け取ります。
use Illuminate\Support\Str;
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
return $string->substr(0, 8);
});
// '01gd6r36'
whenIsUuid
whenIsUuid
メソッドは、文字列が有効なUUIDである場合、指定クロージャを呼び出します。クロージャは、Fluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('a0a2a2d2-0b87-4a18-83f2-2529882be2de')->whenIsUuid(function (Stringable $string) {
return $string->substr(0, 8);
});
// 'a0a2a2d2'
whenTest
whenTest
メソッドは、文字列が正規表現にマッチする場合、指定クロージャを呼び出します。クロージャはFluent文字列インスタンスを受け取ります。
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel framework')->whenTest('/laravel/', function (Stringable $string) {
return $string->title();
});
// 'Laravel Framework'
wordCount
wordcount
メソッドは、文字列に含まれる単語の数を返します。
use Illuminate\Support\Str;
Str::of('Hello, world!')->wordCount(); // 2
words
words
メソッドは、文字列内の単語数を制限します。必要に応じ、切り捨てた文字列に追加する文字列を指定できます。
use Illuminate\Support\Str;
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
// Perfectly balanced, as >>>