- はじめに
- 利用可能なメソッド
- 文字列
- __()
- 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()
- Markdown セキュリティ
- Str::is()
- Str::isAscii()
- Str::isJson()
- Str::isUrl()
- Str::isUlid()
- Str::isUuid()
- Str::kebab()
- Str::lcfirst()
- Str::length()
- Str::limit()
- Str::lower()
- Str::markdown()
- 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()
- Fluent Strings
- 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
- Markdown Security
- is
- isAscii
- isEmpty
- isNotEmpty
- isJson
- isUlid
- isUrl
- isUuid
- kebab
- lcfirst
- length
- limit
- lower
- markdown
- Markdown Security
- 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
はじめに
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
文字列
__()
`````````` 関数は、指定された翻訳文字列または翻訳キーを 言語ファイル を使用して翻訳します:
echo __('Welcome to our application');
echo __('messages.welcome');
指定された翻訳文字列またはキーが存在しない場合、関数は指定された値を返します。したがって、上記の例を使用すると、
関数はその翻訳キーが存在しない場合、messages.welcome
を返します。
class_basename()
class_basename
関数は、指定されたクラスのクラス名をクラスの名前空間を削除して返します:
$class = class_basename('Foo\Bar\Baz');
// Baz
e()
e
関数は、デフォルトで double_encode
オプションが true
に設定された状態で PHP の htmlspecialchars
関数を実行します:
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::apa()
Str::apa
メソッドは、指定された文字列を APA ガイドライン に従ってタイトルケースに変換します:
use Illuminate\Support\Str;
$title = Str::apa('Creating A Project');
// 'Creating a Project'
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::charAt()
Str::charAt
メソッドは、指定されたインデックスの文字を返します。インデックスが範囲外の場合、false
が返されます:
use Illuminate\Support\Str;
$character = Str::charAt('This is my name.', 6);
// 's'
Str::chopStart()
Str::chopStart
メソッドは、指定された値が文字列の先頭に出現する場合のみ、その最初の出現を削除します:
use Illuminate\Support\Str;
$url = Str::chopStart('https://laravel.com', 'https://');
// 'laravel.com'
第二引数として配列を渡すこともできます。文字列が配列内のいずれかの値で始まる場合、その値が文字列から削除されます:
use Illuminate\Support\Str;
$url = Str::chopStart('http://laravel.com', ['https://', 'http://']);
// 'laravel.com'
Str::chopEnd()
Str::chopEnd
メソッドは、指定された値が文字列の末尾に出現する場合のみ、その最後の出現を削除します:
use Illuminate\Support\Str;
$url = Str::chopEnd('app/Models/Photograph.php', '.php');
// 'app/Models/Photograph'
第二引数として配列を渡すこともできます。文字列が配列内のいずれかの値で終わる場合、その値が文字列から削除されます:
use Illuminate\Support\Str;
$url = Str::chopEnd('laravel.com/index.php', ['/index.html', '/index.php']);
// 'laravel.com'
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
ignoreCase
引数を true
に設定することで、大文字と小文字の区別を無効にすることができます:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'MY', ignoreCase: true);
// true
Str::containsAll()
Str::containsAll
メソッドは、指定された文字列が指定された配列内のすべての値を含むかどうかを判断します:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
ignoreCase
引数を true
に設定することで、大文字と小文字の区別を無効にすることができます:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['MY', 'NAME'], ignoreCase: true);
// true
Str::deduplicate()
Str::deduplicate
メソッドは、指定された文字列内の連続する文字のインスタンスを単一のインスタンスに置き換えます。デフォルトでは、このメソッドはスペースを重複排除します:
use Illuminate\Support\Str;
$result = Str::deduplicate('The Laravel Framework');
// The Laravel Framework
異なる文字を指定して重複排除するには、メソッドの第二引数として渡すことができます:
use Illuminate\Support\Str;
$result = Str::deduplicate('The---Laravel---Framework', '-');
// The-Laravel-Framework
Str::endsWith()
Str::endsWith
メソッドは、指定された文字列が指定された値で終わるかどうかを判断します:
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>
Markdown セキュリティ
デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input
オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links
オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:
use Illuminate\Support\Str;
Str::inlineMarkdown('Inject: <script>alert("Hello XSS!");</script>', [
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// Inject: alert("Hello XSS!");
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
isUrl
メソッドは、広範囲のプロトコルを有効と見なします。ただし、有効と見なすプロトコルを指定するには、isUrl
メソッドに提供することができます:
$isUrl = Str::isUrl('http://example.com', ['http', 'https']);
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...
切り詰められた文字列の末尾に追加される文字列を変更するために、メソッドに第三引数を渡すことができます:
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
文字列を切り詰める際に完全な単語を保持したい場合は、preserveWords
引数を利用できます。この引数が true
の場合、文字列は最も近い完全な単語の境界で切り詰められます:
$truncated = Str::limit('The quick brown fox', 12, preserveWords: true);
// The quick...
Str::lower()
Str::lower
メソッドは、指定された文字列を小文字に変換します:
use Illuminate\Support\Str;
$converted = Str::lower('LARAVEL');
// laravel
Str::markdown()
Str::markdown
メソッドは、GitHub フレーバーの Markdown を CommonMark を使用して HTML に変換します:
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>
Markdown セキュリティ
デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input
オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links
オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:
use Illuminate\Support\Str;
Str::markdown('Inject: <script>alert("Hello XSS!");</script>', [
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// <p>Inject: alert("Hello XSS!");</p>
Str::mask()
Str::mask
メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号などの文字列のセグメントを隠すために使用できます:
use Illuminate\Support\Str;
$string = Str::mask('', '*', 3);
// tay***************
必要に応じて、mask
メソッドに第三引数として負の数を提供すると、文字列の末尾から指定された距離でマスクを開始するように指示します:
$string = Str::mask('', '*', -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()
Str::padLeft
メソッドは、PHP の str_pad
関数をラップし、文字列の左側を別の文字列でパディングして、最終的な文字列が所望の長さに達するまで行います:
use Illuminate\Support\Str;
$padded = Str::padLeft('James', 10, '-=');
// '-=-=-James'
$padded = Str::padLeft('James', 10);
// ' James'
Str::padRight()
Str::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
整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:
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
整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:
use Illuminate\Support\Str;
$plural = Str::pluralStudly('VerifiedHuman', 2);
// VerifiedHumans
$singular = Str::pluralStudly('VerifiedHuman', 1);
// VerifiedHuman
Str::position()
Str::position
メソッドは、文字列内の部分文字列の最初の出現の位置を返します。部分文字列が指定された文字列に存在しない場合、false
が返されます:
use Illuminate\Support\Str;
$position = Str::position('Hello, World!', 'Hello');
// 0
$position = Str::position('Hello, World!', 'W');
// 7
Str::random()
Str::random
メソッドは、指定された長さのランダムな文字列を生成します。この関数は、PHP の random_bytes
関数を使用します:
use Illuminate\Support\Str;
$random = Str::random(40);
テスト中に、Str::random
メソッドによって返される値を「偽造」することが役立つ場合があります。これを実現するには、createRandomStringsUsing
メソッドを使用できます:
Str::createRandomStringsUsing(function () {
return 'fake-random-string';
});
random
メソッドに通常のランダム文字列の生成に戻すよう指示するには、createRandomStringsNormally
メソッドを呼び出すことができます:
Str::createRandomStringsNormally();
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.
文字列を削除する際に大文字と小文字を無視するには、false
を remove
メソッドの第三引数として渡すこともできます。
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 10.x';
$replaced = Str::replace('10.x', '11.x', $string);
// Laravel 11.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::replaceMatches()
Str::replaceMatches
メソッドは、指定されたパターンに一致する文字列のすべての部分を指定された置換文字列で置き換えます:
use Illuminate\Support\Str;
$replaced = Str::replaceMatches(
pattern: '/[^A-Za-z0-9]++/',
replace: '',
subject: '(+1) 501-555-1000'
)
// '15015551000'
replaceMatches
メソッドは、指定されたパターンに一致する文字列の各部分で呼び出されるクロージャも受け入れ、クロージャ内で置き換えロジックを実行し、置き換えられた値を返すことができます:
use Illuminate\Support\Str;
$replaced = Str::replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
}, '123');
// '[1][2][3]'
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
メソッドは、指定された文字列が指定された値で始まるかどうかを判断します:
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
メソッドは、文字列の一部内のテキストを置き換えます。これは、第三引数で指定された位置から始まり、第四引数で指定された文字数を置き換えます。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::take()
Str::take
メソッドは、文字列の先頭から指定された数の文字を返します:
use Illuminate\Support\Str;
$taken = Str::take('Build something amazing!', 5);
// Build
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::toBase64()
Str::toBase64
メソッドは、指定された文字列を Base64 に変換します:
use Illuminate\Support\Str;
$base64 = Str::toBase64('Laravel');
// TGFyYXZlbA==
Str::toHtmlString()
Str::toHtmlString
メソッドは、文字列インスタンスを Illuminate\Support\HtmlString
のインスタンスに変換します。これは、Blade テンプレートで表示される可能性があります:
use Illuminate\Support\Str;
$htmlString = Str::of('Nuno Maduro')->toHtmlString();
Str::transliterate()
Str::transliterate
メソッドは、指定された文字列を最も近い ASCII 表現に変換しようとします:
use Illuminate\Support\Str;
$email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
// ''
Str::trim()
Str::trim
メソッドは、指定された文字列の先頭と末尾から空白(または他の文字)を削除します。PHP のネイティブ trim
関数とは異なり、Str::trim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::trim(' foo bar ');
// 'foo bar'
Str::ltrim()
Str::ltrim
メソッドは、指定された文字列の先頭から空白(または他の文字)を削除します。PHP のネイティブ ltrim
関数とは異なり、Str::ltrim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::ltrim(' foo bar ');
// 'foo bar '
Str::rtrim()
Str::rtrim
メソッドは、指定された文字列の末尾から空白(または他の文字)を削除します。PHP のネイティブ rtrim
関数とは異なり、Str::rtrim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::rtrim(' foo bar ');
// ' foo bar'
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::ulid
メソッドによって返される値を「フェイク」することが有用な場合があります。これを実現するには、createUlidsUsing
メソッドを使用できます:
use Symfony\Component\Uid\Ulid;
Str::createUlidsUsing(function () {
return new Ulid('01HRDBNHHCKNW2AK4Z29SN82T9');
});
ulid
メソッドに通常の ULID の生成に戻るよう指示するには、createUlidsNormally
メソッドを呼び出すことができます:
Str::createUlidsNormally();
Str::unwrap()
Str::unwrap
メソッドは、指定された文字列を文字列の先頭と末尾から削除します:
use Illuminate\Support\Str;
Str::unwrap('-Laravel-', '-');
// Laravel
Str::unwrap('{framework: "Laravel"}', '{', '}');
// framework: "Laravel"
Str::uuid()
Str::uuid
メソッドは、UUID(バージョン 4)を生成します:
use Illuminate\Support\Str;
return (string) Str::uuid();
テスト中に、Str::uuid
メソッドによって返される値を「フェイク」することが有用な場合があります。これを実現するには、createUuidsUsing
メソッドを使用できます:
use Ramsey\Uuid\Uuid;
Str::createUuidsUsing(function () {
return Uuid::fromString('eadbfeac-5258-45c2-bab7-ccb9b5ef74f9');
});
uuid
メソッドに通常の UUID の生成に戻るよう指示するには、createUuidsNormally
メソッドを呼び出すことができます:
Str::createUuidsNormally();
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
メソッドは、文字列内の単語の数を制限します。このメソッドには、切り捨てられた文字列の末尾に追加される文字列を指定するために、第三引数を介して追加の文字列を渡すことができます:
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
関数は指定されたキーを返します。したがって、上記の例を使用すると、trans
関数は翻訳キーが存在しない場合 messages.welcome
を返します。
trans_choice()
trans_choice
関数は、屈折を伴って指定された翻訳キーを翻訳します:
echo trans_choice('messages.notifications', $unreadCount);
指定された翻訳キーが存在しない場合、trans_choice
関数は指定されたキーを返します。したがって、上記の例を使用すると、trans_choice
関数は翻訳キーが存在しない場合 messages.notifications
を返します。
Fluent Strings
流暢な文字列は、文字列値を操作するためのより流暢でオブジェクト指向のインターフェースを提供し、従来の文字列操作と比較して、より読みやすい構文を使用して複数の文字列操作を連鎖させることを可能にします。
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'
apa
apa
メソッドは、指定された文字列を APA ガイドライン に従ってタイトルケースに変換します:
use Illuminate\Support\Str;
$converted = Str::of('a nice title uses the correct case')->apa();
// A Nice Title Uses the Correct Case
append
append
メソッドは、指定された値を文字列に追加します:
use Illuminate\Support\Str;
$string = Str::of('Taylor')->append(' Otwell');
// 'Taylor Otwell'
ascii
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'
charAt
charAt
メソッドは、指定されたインデックスの文字を返します。インデックスが範囲外の場合、false
が返されます:
use Illuminate\Support\Str;
$character = Str::of('This is my name.')->charAt(6);
// 's'
classBasename
classBasename
メソッドは、指定されたクラスのクラス名を、クラスの名前空間を削除して返します:
use Illuminate\Support\Str;
$class = Str::of('Foo\Bar\Baz')->classBasename();
// 'Baz'
chopStart
chopStart
メソッドは、指定された値が文字列の先頭に現れる場合にのみ、その最初の出現を削除します:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopStart('https://');
// 'laravel.com'
配列を渡すこともできます。文字列が配列内のいずれかの値で始まる場合、その値が文字列から削除されます:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopStart(['https://', 'http://']);
// 'laravel.com'
chopEnd
chopEnd
メソッドは、指定された値が文字列の末尾に現れる場合にのみ、その最後の出現を削除します:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopEnd('.com');
// 'https://laravel'
配列を渡すこともできます。文字列が配列内のいずれかの値で終わる場合、その値が文字列から削除されます:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopEnd(['.com', '.io']);
// 'http://laravel'
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
ignoreCase
引数を true
に設定することで、大文字と小文字の区別を無効にできます:
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains('MY', ignoreCase: true);
// true
containsAll
containsAll
メソッドは、指定された文字列が指定された配列内のすべての値を含むかどうかを判断します:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
// true
大文字と小文字の区別を無効にするには、ignoreCase
引数を true
に設定します:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['MY', 'NAME'], ignoreCase: true);
// true
deduplicate
deduplicate
メソッドは、指定された文字列内の連続する文字のインスタンスを単一のインスタンスに置き換えます。デフォルトでは、このメソッドは空白を重複排除します:
use Illuminate\Support\Str;
$result = Str::of('The Laravel Framework')->deduplicate();
// The Laravel Framework
異なる文字を指定して重複排除するには、メソッドの第二引数として渡すことができます:
use Illuminate\Support\Str;
$result = Str::of('The---Laravel---Framework')->deduplicate('-');
// The-Laravel-Framework
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'
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
excerpt
excerpt
メソッドは、文字列内のフレーズの最初の出現に一致する抜粋を抽出します:
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('my', [
'radius' => 3
]);
// '...is my na...'
radius
オプションは、デフォルトで 100
に設定されており、切り取られた文字列の両側に表示される文字数を定義できます。
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('name', [
'radius' => 3,
'omission' => '(...) '
]);
// '(...) my name'
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>
Markdown Security
デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input
オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links
オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:
use Illuminate\Support\Str;
Str::of('Inject: <script>alert("Hello XSS!");</script>')->inlineMarkdown([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// Inject: alert("Hello XSS!");
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
isUrl
メソッドは、広範囲のプロトコルを有効と見なします。ただし、有効と見なすプロトコルを指定するには、isUrl
メソッドに提供することができます:
$result = Str::of('http://example.com')->isUrl(['http', 'https']);
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...
切り捨てられた文字列の末尾に追加される文字列を変更するために、第二引数を渡すこともできます:
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
// The quick brown fox (...)
文字列を切り詰める際に完全な単語を保持したい場合は、preserveWords
引数を利用できます。この引数が true
の場合、文字列は最も近い完全な単語の境界で切り詰められます:
$truncated = Str::of('The quick brown fox')->limit(12, preserveWords: true);
// The quick...
lower
lower
メソッドは、指定された文字列を小文字に変換します:
use Illuminate\Support\Str;
$result = Str::of('LARAVEL')->lower();
// 'laravel'
markdown
markdown
メソッドは、GitHub フレーバーの Markdown を 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>
Markdown Security
デフォルトでは、Markdown は生の HTML をサポートしており、生のユーザー入力と一緒に使用するとクロスサイトスクリプティング (XSS) 脆弱性を露呈します。CommonMark セキュリティドキュメント に従って、html_input
オプションを使用して生の HTML をエスケープまたは削除し、allow_unsafe_links
オプションを使用して安全でないリンクを許可するかどうかを指定できます。生の HTML を許可する必要がある場合は、コンパイルされた Markdown を HTML Purifier を通過させる必要があります:
use Illuminate\Support\Str;
Str::of('Inject: <script>alert("Hello XSS!");</script>')->markdown([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
// <p>Inject: alert("Hello XSS!");</p>
mask
mask
メソッドは、文字列の一部を繰り返し文字でマスクし、メールアドレスや電話番号などの文字列のセグメントを隠すために使用できます:
use Illuminate\Support\Str;
$string = Str::of('')->mask('*', 3);
// tay***************
必要に応じて、mask
メソッドの第三または第四引数に負の数を指定することで、文字列の末尾から指定された距離でマスキングを開始するよう指示できます:
$string = Str::of('')->mask('*', -15, 3);
// tay***@example.com
$string = Str::of('')->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'])
一致するグループを指定した場合、Laravel は最初の一致するグループの一致を含むコレクションを返します:
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
メソッドは、文字列の現在の値を指定されたコール可能に渡すことで、文字列を変換することを可能にします:
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
整数を第二引数として関数に提供することで、文字列の単数形または複数形を取得できます:
use Illuminate\Support\Str;
$plural = Str::of('child')->plural(2);
// children
$plural = Str::of('child')->plural(1);
// child
position
position
メソッドは、文字列内の部分文字列の最初の出現の位置を返します。部分文字列が文字列内に存在しない場合、false
が返されます:
use Illuminate\Support\Str;
$position = Str::of('Hello, World!')->position('Hello');
// 0
$position = Str::of('Hello, World!')->position('W');
// 7
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!
文字列を削除する際に大文字と小文字を無視するには、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
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
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
stripTags
stripTags
メソッドは、文字列からすべての HTML および PHP タグを削除します:
use Illuminate\Support\Str;
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags();
// Taylor Otwell
$result = Str::of('<a href="https://laravel.com">Taylor <b>Otwell</b></a>')->stripTags('<b>');
// Taylor <b>Otwell</b>
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
メソッドは、第二引数で指定された位置から始まり、第三引数で指定された文字数を置き換えることで、文字列の一部内のテキストを置き換えます。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!
take
take
メソッドは、文字列の先頭から指定された数の文字を返します:
use Illuminate\Support\Str;
$taken = Str::of('Build something amazing!')->take(5);
// Build
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
toBase64()
toBase64
メソッドは、指定された文字列を Base64 に変換します:
use Illuminate\Support\Str;
$base64 = Str::of('Laravel')->toBase64();
// TGFyYXZlbA==
transliterate
transliterate
メソッドは、指定された文字列を最も近い ASCII 表現に変換しようとします:
use Illuminate\Support\Str;
$email = Str::of('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ')->transliterate()
// ''
trim
trim
メソッドは、指定された文字列をトリミングします。PHP のネイティブ trim
関数とは異なり、Laravel の trim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->trim();
// 'Laravel'
$string = Str::of('/Laravel/')->trim('/');
// 'Laravel'
ltrim
ltrim
メソッドは、文字列の左側をトリミングします。PHP のネイティブ ltrim
関数とは異なり、Laravel の ltrim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->ltrim();
// 'Laravel '
$string = Str::of('/Laravel/')->ltrim('/');
// 'Laravel/'
rtrim
rtrim
メソッドは、指定された文字列の右側をトリミングします。PHP のネイティブ rtrim
関数とは異なり、Laravel の rtrim
メソッドは Unicode 空白文字も削除します:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->rtrim();
// ' Laravel'
$string = Str::of('/Laravel/')->rtrim('/');
// '/Laravel'
ucfirst
ucfirst
メソッドは、指定された文字列の最初の文字を大文字にして返します:
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'])
unwrap
unwrap
メソッドは、指定された文字列を文字列の先頭と末尾から削除します:
use Illuminate\Support\Str;
Str::of('-Laravel-')->unwrap('-');
// Laravel
Str::of('{framework: "Laravel"}')->unwrap('{', '}');
// framework: "Laravel"
upper
upper
メソッドは、指定された文字列を大文字に変換します:
use Illuminate\Support\Str;
$adjusted = Str::of('laravel')->upper();
// LARAVEL
when
when
メソッドは、指定された条件が true
の場合に指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Taylor')
->when(true, function (Stringable $string) {
return $string->append(' Otwell');
});
// 'Taylor Otwell'
必要に応じて、when
メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、条件パラメータが false
に評価される場合に実行されます。
whenContains
whenContains
メソッドは、文字列が指定された値を含む場合に指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContains('tony', function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
必要に応じて、when
メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、文字列が指定された値を含まない場合に実行されます。
配列の値を渡して、指定された文字列が配列内のいずれかの値を含むかどうかを判断することもできます:
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
メソッドは、文字列が指定されたすべてのサブ文字列を含む場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
必要に応じて、when
メソッドの第三引数として別のクロージャを渡すことができます。このクロージャは、条件パラメータが false
に評価される場合に実行されます。
whenEmpty
whenEmpty
メソッドは、文字列が空である場合に、指定されたクロージャを呼び出します。クロージャが値を返す場合、その値は whenEmpty
メソッドによっても返されます。クロージャが値を返さない場合、流暢な文字列インスタンスが返されます:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of(' ')->whenEmpty(function (Stringable $string) {
return $string->trim()->prepend('Laravel');
});
// 'Laravel'
whenNotEmpty
whenNotEmpty
メソッドは、文字列が空でない場合に、指定されたクロージャを呼び出します。クロージャが値を返す場合、その値は whenNotEmpty
メソッドによっても返されます。クロージャが値を返さない場合、流暢な文字列インスタンスが返されます:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Framework')->whenNotEmpty(function (Stringable $string) {
return $string->prepend('Laravel ');
});
// 'Laravel Framework'
whenStartsWith
whenStartsWith
メソッドは、文字列が指定されたサブ文字列で始まる場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
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
メソッドは、文字列が指定されたサブ文字列で終わる場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
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
メソッドは、文字列が指定された文字列と正確に一致する場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenNotExactly
whenNotExactly
メソッドは、文字列が指定された文字列と正確に一致しない場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Framework'
whenIs
whenIs
メソッドは、文字列が指定されたパターンに一致する場合に、指定されたクロージャを呼び出します。アスタリスクはワイルドカード値として使用できます。クロージャは流暢な文字列インスタンスを受け取ります:
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
メソッドは、文字列が7ビットASCIIである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenIsUlid
whenIsUlid
メソッドは、文字列が有効なULIDである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
use Illuminate\Support\Str;
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
return $string->substr(0, 8);
});
// '01gd6r36'
whenIsUuid
whenIsUuid
メソッドは、文字列が有効なUUIDである場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
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
メソッドは、文字列が指定された正規表現に一致する場合に、指定されたクロージャを呼び出します。クロージャは流暢な文字列インスタンスを受け取ります:
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 >>>
wrap
wrap
メソッドは、指定された文字列を追加の文字列または文字列のペアでラップします:
``````php
use Illuminate\Support\Str;
Str::of(‘Laravel’)->wrap(‘“‘);
// “Laravel”
Str::is(‘is’)->wrap(before: ‘This ‘, after: ‘ Laravel!’);
// This is Laravel!
``````@