Prologo
Primi Passi
Architettura
Le Basi
- Routing
- Middleware
- Protezione da CSRF
- Controller
- Richieste
- Risposte
- Views
- Blade
- Vite
- URL
- Sessioni
- Validazione
- Errori
- Logging
Approfondimenti
- Artisan
- Broadcasting
- Cache
- Collezioni
- Concorrenza
- Contesto
- Contratti
- Eventi
- File System
- Helpers
- Client HTTP
- Localizzazione
- Notifiche
- Sviluppo di Package
- Processi
- Code
- Rate-limiting
- Stringhe
- Scheduling di Task
Sicurezza
Database
Eloquent ORM
Testing
Package
Stringhe
Introduzione
Laravel offre una varietà di funzioni per gestire le stringhe. Molte di queste sono usate dal framework stesso; tuttavia, puoi usarle nelle tue applicazioni se le trovi utili.
Metodi Disponibili
Stringhe
- __
- 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::doesntContain
- 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::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
Stringhe Fluenti
- 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
- toHtmlString
- 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
Stringhe
__()
La funzione __
traduce la stringa di traduzione o la chiave di traduzione fornita utilizzando i tuoi file di lingua:
echo __('Welcome to our application');
echo __('messages.welcome');
Se la stringa di traduzione o la chiave specificata non esiste, la funzione __
restituirà il valore fornito. Quindi, nell’esempio sopra, la funzione __
restituirebbe messages.welcome
se quella chiave di traduzione non esiste.
class_basename()
La funzione class_basename
ritorna il nome della classe specificata senza includere il namespace:
$class = class_basename('Foo\Bar\Baz');
// Baz
e()
La funzione e
esegue la funzione htmlspecialchars
di PHP con l’opzione double_encode
impostata su true
per impostazione predefinita:
echo e('<html>foo</html>');
// <html>foo</html>
preg_replace_array()
La funzione preg_replace_array
sostituisce un pattern specifico nella stringa in sequenza utilizzando un 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()
Il metodo Str::after
restituisce tutto ciò che segue un determinato valore all’interno di una stringa. Se il valore non è presente nella stringa, verrà restituita l’intera stringa:
use Illuminate\Support\Str;
$slice = Str::after('This is my name', 'This is');
// ' my name'
Str::afterLast()
Il metodo Str::afterLast
restituisce tutto ciò che si trova dopo l’ultima occorrenza del valore specificato in una stringa. L’intera stringa verrà restituita se il valore non esiste nella stringa:
use Illuminate\Support\Str;
$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');
// 'Controller'
Str::apa()
Il metodo Str::apa
trasforma la stringa fornita in title case seguendo le linee guida APA:
use Illuminate\Support\Str;
$title = Str::apa('Creating A Project');
// 'Creating a Project'
Str::ascii()
Il metodo Str::ascii
cerca di traslitterare la stringa in un valore ASCII:
use Illuminate\Support\Str;
$slice = Str::ascii('û');
// 'u'
Str::before()
Il metodo Str::before
restituisce tutto ciò che precede il valore dato in una stringa:
use Illuminate\Support\Str;
$slice = Str::before('This is my name', 'my name');
// 'This is '
Str::beforeLast()
Il metodo Str::beforeLast
restituisce tutto ciò che c’è prima dell’ultima occorrenza del valore specificato in una stringa:
use Illuminate\Support\Str;
$slice = Str::beforeLast('This is my name', 'is');
// 'This '
Str::between()
Il metodo Str::between
restituisce la porzione di una stringa compresa tra due valori:
use Illuminate\Support\Str;
$slice = Str::between('This is my name', 'This', 'name');
// ' is my '
Str::betweenFirst()
Il metodo Str::betweenFirst
restituisce la porzione più piccola possibile di una stringa compresa tra due valori:
use Illuminate\Support\Str;
$slice = Str::betweenFirst('[a] bc [d]', '[', ']');
// 'a'
Str::camel()
Il metodo Str::camel
converte la stringa fornita in camelCase
:
use Illuminate\Support\Str;
$converted = Str::camel('foo_bar');
// 'fooBar'
Str::charAt()
Il metodo Str::charAt
restituisce il carattere all’indice specificato. Se l’indice è fuori dai limiti, viene restituito false
:
use Illuminate\Support\Str;
$character = Str::charAt('This is my name.', 6);
// 's'
Str::chopStart()
Il metodo Str::chopStart
rimuove la prima occorrenza del valore specificato solo se appare all’inizio della stringa:
use Illuminate\Support\Str;
$url = Str::chopStart('https://laravel.com', 'https://');
// 'laravel.com'
Puoi anche passare un array come secondo argomento. Se la stringa inizia con uno dei valori nell’array, quel valore verrà rimosso dalla stringa:
use Illuminate\Support\Str;
$url = Str::chopStart('http://laravel.com', ['https://', 'http://']);
// 'laravel.com'
Str::chopEnd()
Il metodo Str::chopEnd
rimuove l’ultima occorrenza del valore specificato solo se appare alla fine della stringa:
use Illuminate\Support\Str;
$url = Str::chopEnd('app/Models/Photograph.php', '.php');
// 'app/Models/Photograph'
Puoi anche passare un array come secondo argomento. Se la stringa finisce con uno dei valori nell’array, quel valore verrà rimosso dalla stringa:
use Illuminate\Support\Str;
$url = Str::chopEnd('laravel.com/index.php', ['/index.html', '/index.php']);
// 'laravel.com'
Str::contains()
Il metodo Str::contains
determina se la stringa fornita contiene il valore specificato. Per impostazione predefinita questo metodo è sensibile alle maiuscole:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'my');
// true
Puoi anche passare un array di valori per verificare se la stringa contiene uno qualsiasi dei valori nell’array:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', ['my', 'foo']);
// true
Puoi disabilitare la sensibilità alle maiuscole impostando l’argomento ignoreCase
a true
:
use Illuminate\Support\Str;
$contains = Str::contains('This is my name', 'MY', ignoreCase: true);
// true
Str::containsAll()
Il metodo Str::containsAll
determina se la stringa fornita contiene tutti i valori in un array specificato:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['my', 'name']);
// true
Puoi disabilitare la sensibilità al maiuscolo/minuscolo impostando l’argomento ignoreCase
a true
:
use Illuminate\Support\Str;
$containsAll = Str::containsAll('This is my name', ['MY', 'NAME'], ignoreCase: true);
// true
Str::doesntContain()
Il metodo Str::doesntContain
determina se la stringa fornita non contiene il valore specificato. Per impostazione predefinita, questo metodo distingue tra maiuscole e minuscole:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', 'my');
// true
Puoi anche passare un array di valori per verificare se la stringa fornita non contiene nessuno dei valori nell’array:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', ['my', 'foo']);
// true
Puoi disabilitare la distinzione tra maiuscole e minuscole impostando l’argomento ignoreCase
a true
:
use Illuminate\Support\Str;
$doesntContain = Str::doesntContain('This is name', 'MY', ignoreCase: true);
// true
Str::deduplicate()
Il metodo Str::deduplicate
sostituisce le occorrenze consecutive di un carattere con una sola istanza di quel carattere nella stringa fornita. Per impostazione predefinita, il metodo deduplica gli spazi:
use Illuminate\Support\Str;
$result = Str::deduplicate('The Laravel Framework');
// The Laravel Framework
Puoi specificare un carattere diverso da deduplicare passando come secondo argomento al metodo:
use Illuminate\Support\Str;
$result = Str::deduplicate('The---Laravel---Framework', '-');
// The-Laravel-Framework
Str::endsWith()
Il metodo Str::endsWith
verifica se la stringa fornita termina con il valore specificato:
use Illuminate\Support\Str;
$result = Str::endsWith('Questo è il mio nome', 'nome');
// true
Puoi anche passare un array di valori per verificare se la stringa termina con uno dei valori nell’array:
use Illuminate\Support\Str;
$result = Str::endsWith('Questo è il mio nome', ['nome', 'foo']);
// true
$result = Str::endsWith('Questo è il mio nome', ['questo', 'foo']);
// false
Str::excerpt()
Il metodo Str::excerpt
estrae un estratto da una stringa data che corrisponde alla prima occorrenza di una frase all’interno di quella stringa:
use Illuminate\Support\Str;
$excerpt = Str::excerpt('This is my name', 'my', [
'radius' => 3
]);
// '...is my na...'
L’opzione radius
, che di default è 100
, ti permette di definire il numero di caratteri che devono apparire su ogni lato della stringa troncata.
Inoltre, puoi usare l’opzione omission
per definire la stringa che verrà preceduta e seguita alla stringa troncata:
use Illuminate\Support\Str;
$excerpt = Str::excerpt('This is my name', 'name', [
'radius' => 3,
'omission' => '(...) '
]);
// '(...) my name'
Str::finish()
Il metodo Str::finish
aggiunge una singola istanza del valore dato a una stringa se non termina già con quel valore:
use Illuminate\Support\Str;
$adjusted = Str::finish('this/string', '/');
// this/string/
$adjusted = Str::finish('this/string/', '/');
// this/string/
Str::headline()
Il metodo Str::headline
converte le stringhe separate da maiuscole, trattini o underscore in una stringa separata da spazi, con la prima lettera di ogni parola in maiuscolo:
use Illuminate\Support\Str;
$headline = Str::headline('steve_jobs');
// Steve Jobs
$headline = Str::headline('EmailNotificationSent');
// Email Notification Sent
Str::inlineMarkdown()
Il metodo Str::inlineMarkdown
converte il Markdown di GitHub in HTML inline usando CommonMark. Tuttavia, a differenza del metodo markdown
, non avvolge tutto l’HTML generato in un elemento di blocco:
use Illuminate\Support\Str;
$html = Str::inlineMarkdown('**Laravel**');
// <strong>Laravel</strong>
Sicurezza in Markdown
Per impostazione predefinita, Markdown supporta HTML grezzo, il che può esporre a vulnerabilità di Cross-Site Scripting (XSS) quando viene utilizzato con input utente non filtrato. Secondo la documentazione sulla sicurezza di CommonMark, puoi utilizzare l’opzione html_input
per sfuggire o rimuovere l’HTML grezzo e l’opzione allow_unsafe_links
per specificare se consentire link non sicuri. Se hai bisogno di permettere un po’ di HTML grezzo, dovresti passare il tuo Markdown compilato attraverso un 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()
Il metodo Str::is
determina se una stringa fornita corrisponde a un determinato pattern. Gli asterischi possono essere usati come caratteri jolly:
use Illuminate\Support\Str;
$matches = Str::is('foo*', 'foobar');
// true
$matches = Str::is('baz*', 'foobar');
// false
Puoi disabilitare la sensibilità alle maiuscole impostando l’argomento ignoreCase
su true
:
use Illuminate\Support\Str;
$matches = Str::is('*.jpg', 'photo.JPG', ignoreCase: true);
// true
Str::isAscii()
Il metodo Str::isAscii
determina se una stringa data è ASCII a 7 bit:
use Illuminate\Support\Str;
$isAscii = Str::isAscii('Taylor');
// true
$isAscii = Str::isAscii('ü');
// false
Str::isJson()
Il metodo Str::isJson
verifica se la stringa fornita è un JSON valido:
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()
Il metodo Str::isUrl
determina se la stringa fornita è un URL valido:
use Illuminate\Support\Str;
$isUrl = Str::isUrl('http://example.com');
// true
$isUrl = Str::isUrl('laravel');
// false
Il metodo isUrl
considera validi una vasta gamma di protocolli. Tuttavia, puoi specificare i protocolli che devono essere considerati validi fornendoli al metodo isUrl
:
$isUrl = Str::isUrl('http://example.com', ['http', 'https']);
Str::isUlid()
Il metodo Str::isUlid
determina se la stringa fornita è un ULID valido:
use Illuminate\Support\Str;
$isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40');
// true
$isUlid = Str::isUlid('laravel');
// false
Str::isUuid()
Il metodo Str::isUuid
determina se la stringa fornita è un UUID valido:
use Illuminate\Support\Str;
$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');
// true
$isUuid = Str::isUuid('laravel');
// false
Str::kebab()
Il metodo Str::kebab
trasforma una stringa in kebab-case
:
use Illuminate\Support\Str;
$converted = Str::kebab('fooBar');
// foo-bar
Str::lcfirst()
Il metodo Str::lcfirst
restituisce la stringa fornita con il primo carattere in minuscolo:
use Illuminate\Support\Str;
$string = Str::lcfirst('Foo Bar');
// foo Bar
Str::length()
Il metodo Str::length
restituisce la lunghezza della stringa fornita:
use Illuminate\Support\Str;
$length = Str::length('Laravel');
// 7
Str::limit()
Il metodo Str::limit
tronca la stringa data alla lunghezza specificata:
use Illuminate\Support\Str;
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);
// The quick brown fox...
Puoi passare un terzo argomento al metodo per cambiare la stringa che verrà aggiunta alla fine della stringa troncata:
$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
Se desideri preservare le parole complete durante il troncamento della stringa, puoi utilizzare l’argomento preserveWords
. Quando questo argomento è true
, la stringa verrà troncata al confine della parola completa più vicino:
$truncated = Str::limit('The quick brown fox', 12, preserveWords: true);
// The quick...
Str::lower()
Il metodo Str::lower
converte la stringa data in minuscolo:
use Illuminate\Support\Str;
$converted = Str::lower('LARAVEL');
// laravel
Str::markdown()
Il metodo Str::markdown
converte il GitHub flavored Markdown in HTML usando 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>
Sicurezza in Markdown
Per impostazione predefinita, Markdown supporta l’HTML grezzo, il che può esporre a vulnerabilità di Cross-Site Scripting (XSS) quando si utilizza input utente non filtrato. Secondo la documentazione sulla sicurezza di CommonMark, puoi usare l’opzione html_input
per sfuggire o rimuovere l’HTML grezzo, e l’opzione allow_unsafe_links
per specificare se permettere link non sicuri. Se hai bisogno di consentire un po’ di HTML grezzo, dovresti passare il tuo Markdown compilato attraverso un 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()
Il metodo Str::mask
maschera una parte di una stringa con un carattere ripetuto e può essere usato per offuscare segmenti di stringhe come indirizzi email e numeri di telefono:
use Illuminate\Support\Str;
$string = Str::mask('taylor@example.com', '*', 3);
// tay***************
Se necessario, puoi fornire un numero negativo come terzo argomento al metodo mask
, il che farà sì che il mascheramento inizi a una certa distanza dalla fine della stringa:
$string = Str::mask('taylor@example.com', '*', -15, 3);
// tay***@example.com
Str::orderedUuid()
Il metodo Str::orderedUuid
genera un UUID "timestamp first" che può essere memorizzato in modo efficiente in una colonna di database indicizzata. Ogni UUID generato usando questo metodo sarà ordinato dopo gli UUID generati precedentemente tramite il metodo:
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
Str::padBoth()
Il metodo Str::padBoth
incapsula la funzione str_pad
di PHP, aggiungendo caratteri su entrambi i lati di una stringa con un’altra stringa fino a quando la stringa finale raggiunge la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::padBoth('James', 10, '_');
// '__James___'
$padded = Str::padBoth('James', 10);
// ' James '
Str::padLeft()
Il metodo Str::padLeft
utilizza la funzione str_pad
di PHP, aggiungendo a sinistra di una stringa un’altra stringa fino a raggiungere la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::padLeft('James', 10, '-=');
// '-=-=-James'
$padded = Str::padLeft('James', 10);
// ' James'
Str::padRight()
Il metodo Str::padRight
incapsula la funzione str_pad
di PHP, aggiungendo a destra di una stringa un’altra stringa fino a raggiungere la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::padRight('James', 10, '-');
// 'James-----'
$padded = Str::padRight('James', 10);
// 'James '
Str::password()
Il metodo Str::password
può essere usato per generare una password sicura e casuale di una lunghezza specificata. La password sarà composta da una combinazione di lettere, numeri, simboli e spazi. Di default, le password hanno 32 caratteri:
use Illuminate\Support\Str;
$password = Str::password();
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
$password = Str::password(12);
// 'qwuar>#V|i]N'
Str::plural()
Il metodo Str::plural
converte una stringa al singolare nella sua forma plurale. Questa funzione supporta qualsiasi lingua supportata dal pluralizzatore di Laravel:
use Illuminate\Support\Str;
$plural = Str::plural('car');
// cars
$plural = Str::plural('child');
// children
Puoi fornire un intero come secondo argomento alla funzione per ottenere la forma singolare o plurale della stringa:
use Illuminate\Support\Str;
$plural = Str::plural('child', 2);
// children
$singular = Str::plural('child', 1);
// child
Str::pluralStudly()
Il metodo Str::pluralStudly
converte una stringa singolare formattata in studly caps case nella sua forma plurale. Questa funzione supporta qualsiasi delle lingue supportate dal pluralizzatore di Laravel:
use Illuminate\Support\Str;
$plural = Str::pluralStudly('VerifiedHuman');
// VerifiedHumans
$plural = Str::pluralStudly('UserFeedback');
// UserFeedback
Puoi fornire un intero come secondo argomento alla funzione per ottenere la forma singolare o plurale della stringa:
use Illuminate\Support\Str;
$plural = Str::pluralStudly('VerifiedHuman', 2);
// VerifiedHumans
$singular = Str::pluralStudly('VerifiedHuman', 1);
// VerifiedHuman
Str::position()
Il metodo Str::position
restituisce la posizione della prima occorrenza di una sottostringa in una stringa. Se la sottostringa non esiste nella stringa fornita, viene restituito false
:
use Illuminate\Support\Str;
$position = Str::position('Hello, World!', 'Hello');
// 0
$position = Str::position('Hello, World!', 'W');
// 7
Str::random()
Il metodo Str::random
genera una stringa casuale della lunghezza specificata. Questa funzione utilizza la funzione random_bytes
di PHP:
use Illuminate\Support\Str;
$random = Str::random(40);
Durante i test, potrebbe essere utile "fingere" il valore restituito dal metodo Str::random
. Per fare ciò, puoi usare il metodo createRandomStringsUsing
:
Str::createRandomStringsUsing(function () {
return 'fake-random-string';
});
Per far sì che il metodo random
torni a generare stringhe casuali normalmente, puoi invocare il metodo createRandomStringsNormally
:
Str::createRandomStringsNormally();
Str::remove()
Il metodo Str::remove
rimuove il valore fornito o un array di valori dalla stringa:
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.
Puoi anche passare false
come terzo argomento al metodo remove
per ignorare la distinzione tra maiuscole e minuscole durante la rimozione delle stringhe.
Str::repeat()
Il metodo Str::repeat
ripete la stringa fornita:
use Illuminate\Support\Str;
$string = 'a';
$repeat = Str::repeat($string, 5);
// aaaaa
Str::replace()
Il metodo Str::replace
sostituisce una determinata stringa all’interno della stringa:
use Illuminate\Support\Str;
$string = 'Laravel 10.x';
$replaced = Str::replace('10.x', '11.x', $string);
// Laravel 11.x
Il metodo replace
accetta anche un argomento caseSensitive
. Per impostazione predefinita, il metodo replace
è sensibile alle maiuscole:
Str::replace('Framework', 'Laravel', caseSensitive: false);
Str::replaceArray()
Il metodo Str::replaceArray
sostituisce un valore dato nella stringa in modo sequenziale usando un array:
use Illuminate\Support\Str;
$string = 'L\'evento avrà luogo tra ? e ?';
$replaced = Str::replaceArray('?', ['8:30', '9:00'], $string);
// L'evento avrà luogo tra 8:30 e 9:00
Str::replaceFirst()
Il metodo Str::replaceFirst
sostituisce la prima occorrenza di un valore specificato in una stringa:
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()
Il metodo Str::replaceLast
sostituisce l’ultima occorrenza di un valore dato in una stringa:
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()
Il metodo Str::replaceMatches
sostituisce tutte le parti di una stringa che corrispondono a un pattern con la stringa di sostituzione fornita:
use Illuminate\Support\Str;
$replaced = Str::replaceMatches(
pattern: '/[^A-Za-z0-9]++/',
replace: '',
subject: '(+1) 501-555-1000'
)
// '15015551000'
Il metodo replaceMatches
accetta anche una closure che verrà invocata per ogni porzione della stringa che corrisponde al pattern specificato, permettendoti di eseguire la logica di sostituzione all’interno della closure e restituire il valore sostituito:
use Illuminate\Support\Str;
$replaced = Str::replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
}, '123');
// '[1][2][3]'
Str::replaceStart()
Il metodo Str::replaceStart
sostituisce la prima occorrenza del valore fornito solo se il valore si trova all’inizio della stringa:
use Illuminate\Support\Str;
$replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');
// Laravel World
$replaced = Str::replaceStart('World', 'Laravel', 'Hello World');
// Hello World
Str::replaceEnd()
Il metodo Str::replaceEnd
sostituisce l’ultima occorrenza del valore specificato solo se appare alla fine della stringa:
use Illuminate\Support\Str;
$replaced = Str::replaceEnd('World', 'Laravel', 'Hello World');
// Hello Laravel
$replaced = Str::replaceEnd('Hello', 'Laravel', 'Hello World');
// Hello World
Str::reverse()
Il metodo Str::reverse
inverte la stringa fornita:
use Illuminate\Support\Str;
$reversed = Str::reverse('Hello World');
// dlroW olleH
Str::singular()
Il metodo Str::singular
converte una stringa nella sua forma singolare. Questa funzione supporta tutte le lingue supportate dal pluralizzatore di Laravel:
use Illuminate\Support\Str;
$singular = Str::singular('cars');
// car
$singular = Str::singular('children');
// child
Str::slug()
Il metodo Str::slug
genera uno "slug" adatto per URL dalla stringa fornita:
use Illuminate\Support\Str;
$slug = Str::slug('Laravel 5 Framework', '-');
// laravel-5-framework
Str::snake()
Il metodo Str::snake
converte la stringa data in snake_case
:
use Illuminate\Support\Str;
$converted = Str::snake('fooBar');
// foo_bar
$converted = Str::snake('fooBar', '-');
// foo-bar
Str::squish()
Il metodo Str::squish
rimuove tutti gli spazi bianchi in eccesso da una stringa, inclusi quelli tra le parole:
use Illuminate\Support\Str;
$string = Str::squish(' laravel framework ');
// laravel framework
Str::start()
Il metodo Str::start
aggiunge un’unica occorrenza del valore fornito all’inizio di una stringa se non inizia già con quel valore:
use Illuminate\Support\Str;
$adjusted = Str::start('this/string', '/');
// /this/string
$adjusted = Str::start('/this/string', '/');
// /this/string
Str::startsWith()
Il metodo Str::startsWith
determina se la stringa fornita inizia con il valore specificato:
use Illuminate\Support\Str;
$result = Str::startsWith('This is my name', 'This');
// true
Se viene passato un array di possibili valori, il metodo startsWith
restituirà true
se la stringa inizia con uno dei valori forniti:
$result = Str::startsWith('This is my name', ['This', 'That', 'There']);
// true
Str::studly()
Il metodo Str::studly
trasforma la stringa fornita in StudlyCase
:
use Illuminate\Support\Str;
$converted = Str::studly('foo_bar');
// FooBar
Str::substr()
Il metodo Str::substr
restituisce la parte di una stringa indicata dai parametri di inizio e lunghezza:
use Illuminate\Support\Str;
$converted = Str::substr('The Laravel Framework', 4, 7);
// Laravel
Str::substrCount()
Il metodo Str::substrCount
restituisce il numero di occorrenze di un valore specificato in una stringa data:
use Illuminate\Support\Str;
$count = Str::substrCount('Se ti piace il gelato, ti piaceranno i coni di neve.', 'like');
// 2
Str::substrReplace()
Il metodo Str::substrReplace
sostituisce del testo in una parte di una stringa, a partire dalla posizione indicata dal terzo argomento e sostituendo il numero di caratteri specificato dal quarto argomento. Passare 0
come quarto argomento inserirà la stringa nella posizione specificata senza rimuovere i caratteri esistenti nella stringa:
use Illuminate\Support\Str;
$result = Str::substrReplace('1300', ':', 2);
// 13:
$result = Str::substrReplace('1300', ':', 2, 0);
// 13:00
Str::swap()
Il metodo Str::swap
sostituisce più valori nella stringa fornita usando la funzione strtr
di PHP:
use Illuminate\Support\Str;
$string = Str::swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
], 'Tacos are great!');
// Burritos are fantastic!
Str::take()
Il metodo Str::take
restituisce un numero specifico di caratteri dall’inizio di una stringa:
use Illuminate\Support\Str;
$taken = Str::take('Build something amazing!', 5);
// Build
Str::title()
Il metodo Str::title
converte la stringa fornita in 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()
Il metodo Str::toBase64
converte la stringa fornita in Base64:
use Illuminate\Support\Str;
$base64 = Str::toBase64('Laravel');
// TGFyYXZlbA==
Str::transliterate()
Il metodo Str::transliterate
tenterà di convertire una stringa fornita nella sua rappresentazione ASCII più vicina:
use Illuminate\Support\Str;
$email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
// 'test@laravel.com'
Str::trim()
Il metodo Str::trim
rimuove gli spazi bianchi (o altri caratteri) dall’inizio e dalla fine della stringa fornita. A differenza della funzione nativa trim
di PHP, il metodo Str::trim
elimina anche i caratteri di spazio bianco unicode:
use Illuminate\Support\Str;
$string = Str::trim(' foo bar ');
// 'foo bar'
Str::ltrim()
Il metodo Str::ltrim
rimuove gli spazi bianchi (o altri caratteri) dall’inizio della stringa fornita. A differenza della funzione nativa ltrim
di PHP, il metodo Str::ltrim
elimina anche i caratteri di spazio Unicode:
use Illuminate\Support\Str;
$string = Str::ltrim(' foo bar ');
// 'foo bar '
Str::rtrim()
Il metodo Str::rtrim
rimuove gli spazi (o altri caratteri) dalla fine della stringa fornita. A differenza della funzione nativa di PHP rtrim
, il metodo Str::rtrim
rimuove anche i caratteri di spazio unicode:
use Illuminate\Support\Str;
$string = Str::rtrim(' foo bar ');
// ' foo bar'
Str::ucfirst()
Il metodo Str::ucfirst
restituisce la stringa fornita con il primo carattere maiuscolo:
use Illuminate\Support\Str;
$string = Str::ucfirst('foo bar');
// Foo bar
Str::ucsplit()
Il metodo Str::ucsplit
suddivide la stringa fornita in un array utilizzando i caratteri maiuscoli:
use Illuminate\Support\Str;
$segments = Str::ucsplit('FooBar');
// [0 => 'Foo', 1 => 'Bar']
Str::upper()
Il metodo Str::upper
converte la stringa fornita in maiuscolo:
use Illuminate\Support\Str;
$string = Str::upper('laravel');
// LARAVEL
Str::ulid()
Il metodo Str::ulid
genera un ULID, che è un identificatore unico compatto e ordinato nel tempo:
use Illuminate\Support\Str;
return (string) Str::ulid();
// 01gd6r360bp37zj17nxb55yv40
Se vuoi ottenere un’istanza di data Illuminate\Support\Carbon
che rappresenta la data e l’ora in cui un determinato ULID è stato creato, puoi usare il metodo createFromId
fornito dall’integrazione di Carbon in Laravel:
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
$date = Carbon::createFromId((string) Str::ulid());
Durante i test, potrebbe essere utile "fingere" il valore restituito dal metodo Str::ulid
. Per fare ciò, puoi usare il metodo createUlidsUsing
:
use Symfony\Component\Uid\Ulid;
Str::createUlidsUsing(function () {
return new Ulid('01HRDBNHHCKNW2AK4Z29SN82T9');
});
Per istenziare al metodo ulid
di tornare a generare ULID normalmente, puoi invocare il metodo createUlidsNormally
:
Str::createUlidsNormally();
Str::unwrap()
Il metodo Str::unwrap
rimuove le stringhe specificate dall’inizio e dalla fine di una stringa data:
use Illuminate\Support\Str;
Str::unwrap('-Laravel-', '-');
// Laravel
Str::unwrap('{framework: "Laravel"}', '{', '}');
// framework: "Laravel"
Str::uuid()
Il metodo Str::uuid
genera un UUID (versione 4):
use Illuminate\Support\Str;
return (string) Str::uuid();
Durante i test, potrebbe essere utile "fingere" il valore restituito dal metodo Str::uuid
. Per farlo, puoi usare il metodo createUuidsUsing
:
use Ramsey\Uuid\Uuid;
Str::createUuidsUsing(function () {
return Uuid::fromString('eadbfeac-5258-45c2-bab7-ccb9b5ef74f9');
});
Per tornare a generare UUID normalmente, puoi invocare il metodo createUuidsNormally
:
Str::createUuidsNormally();
Str::wordCount()
Il metodo Str::wordCount
restituisce il numero di parole contenute in una stringa:
use Illuminate\Support\Str;
Str::wordCount('Hello, world!'); // 2
Str::wordWrap()
Il metodo Str::wordWrap
divide una stringa in base a un numero di caratteri specificato:
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()
Il metodo Str::words
limita il numero di parole in una stringa. Una stringa aggiuntiva può essere passata a questo metodo tramite il suo terzo argomento per specificare quale stringa deve essere aggiunta alla fine della stringa troncata:
use Illuminate\Support\Str;
return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');
// Perfectly balanced, as >>>
Str::wrap()
Il metodo Str::wrap
racchiude la stringa fornita con una stringa aggiuntiva o con una coppia di stringhe:
use Illuminate\Support\Str;
Str::wrap('Laravel', '"');
// "Laravel"
Str::wrap('is', before: 'This ', after: ' Laravel!');
// This is Laravel!
str()
La funzione str
restituisce una nuova istanza di Illuminate\Support\Stringable
della stringa fornita. Questa funzione è equivalente al metodo Str::of
:
$string = str('Taylor')->append(' Otwell');
// 'Taylor Otwell'
Se non viene fornito alcun argomento alla funzione str
, la funzione restituisce un’istanza di Illuminate\Support\Str
:
$snake = str()->snake('FooBar');
// 'foo_bar'
trans()
La funzione trans
traduce la chiave di traduzione fornita utilizzando i tuoi file di lingua:
echo trans('messages.welcome');
Se la chiave di traduzione specificata non esiste, la funzione trans
restituirà la chiave stessa. Quindi, nell’esempio sopra, la funzione trans
ritornerà messages.welcome
se la chiave di traduzione non esiste.
trans_choice()
La funzione trans_choice
traduce la chiave di traduzione fornita con l’inflessione:
echo trans_choice('messages.notifications', $unreadCount);
Se la chiave di traduzione specificata non esiste, la funzione trans_choice
restituisce la chiave data. Quindi, nell’esempio sopra, la funzione trans_choice
restituirà messages.notifications
se la chiave di traduzione non esiste.
Fluent Strings
Le Fluent strings forniscono un’interfaccia più fluida e orientata agli oggetti per lavorare con i valori delle stringhe, permettendoti di concatenare più operazioni sulle stringhe usando una sintassi più leggibile rispetto alle operazioni tradizionali.
after
Il metodo after
restituisce tutto ciò che segue il valore specificato in una stringa. Se il valore non esiste nella stringa, viene restituita l’intera stringa:
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->after('This is');
// ' my name'
afterLast
Il metodo afterLast
restituisce tutto ciò che si trova dopo l’ultima occorrenza del valore specificato in una stringa. L’intera stringa verrà restituita se il valore non esiste all’interno della stringa:
use Illuminate\Support\Str;
$slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\');
// 'Controller'
apa
Il metodo apa
converte la stringa fornita in title case seguendo le linee guida APA:
use Illuminate\Support\Str;
$converted = Str::of('a nice title uses the correct case')->apa();
// A Nice Title Uses the Correct Case
append
Il metodo append
aggiunge i valori forniti alla stringa:
use Illuminate\Support\Str;
$string = Str::of('Taylor')->append(' Otwell');
// 'Taylor Otwell'
ascii
Il metodo ascii
proverà a traslitterare la stringa in un valore ASCII:
use Illuminate\Support\Str;
$string = Str::of('ü')->ascii();
// 'u'
basename
Il metodo basename
restituisce il componente finale del nome della stringa fornita:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->basename();
// 'baz'
Se necessario, puoi specificare un’"estensione" che verrà rimossa dal componente finale:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz.jpg')->basename('.jpg');
// 'baz'
before
Il metodo before
restituisce tutto ciò che precede il valore specificato in una stringa:
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->before('my name');
// 'This is '
beforeLast
Il metodo beforeLast
restituisce tutto ciò che precede l’ultima occorrenza del valore specificato in una stringa:
use Illuminate\Support\Str;
$slice = Str::of('This is my name')->beforeLast('is');
// 'This '
between
Il metodo between
restituisce la porzione di una stringa compresa tra due valori:
use Illuminate\Support\Str;
$converted = Str::of('This is my name')->between('This', 'name');
// ' is my '
betweenFirst
Il metodo betweenFirst
restituisce la porzione più piccola possibile di una stringa tra due valori:
use Illuminate\Support\Str;
$converted = Str::of('[a] bc [d]')->betweenFirst('[', ']');
// 'a'
camel
Il metodo camel
trasforma la stringa fornita in camelCase
:
use Illuminate\Support\Str;
$converted = Str::of('foo_bar')->camel();
// 'fooBar'
charAt
Il metodo charAt
restituisce il carattere all’indice specificato. Se l’indice è fuori dai limiti, restituisce false
:
use Illuminate\Support\Str;
$character = Str::of('This is my name.')->charAt(6);
// 's'
classBasename
Il metodo classBasename
restituisce il nome della classe fornita senza il namespace della classe:
use Illuminate\Support\Str;
$class = Str::of('Foo\Bar\Baz')->classBasename();
// 'Baz'
chopStart
Il metodo chopStart
rimuove la prima occorrenza del valore dato solo se il valore appare all’inizio della stringa:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopStart('https://');
// 'laravel.com'
Puoi anche passare un array. Se la stringa inizia con uno dei valori nell’array, quel valore verrà rimosso dalla stringa:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopStart(['https://', 'http://']);
// 'laravel.com'
chopEnd
Il metodo chopEnd
rimuove l’ultima occorrenza del valore dato solo se il valore appare alla fine della stringa:
use Illuminate\Support\Str;
$url = Str::of('https://laravel.com')->chopEnd('.com');
// 'https://laravel'
Puoi anche passare un array. Se la stringa termina con uno dei valori nell’array, quel valore verrà rimosso dalla stringa:
use Illuminate\Support\Str;
$url = Str::of('http://laravel.com')->chopEnd(['.com', '.io']);
// 'http://laravel'
contains
Il metodo contains
determina se la stringa fornita contiene il valore specificato. Di default, questo metodo distingue tra maiuscole e minuscole:
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains('my');
// true
Puoi anche passare un array di valori per verificare se la stringa contiene uno qualsiasi dei valori nell’array:
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains(['my', 'foo']);
// true
Puoi disabilitare la distinzione tra maiuscole e minuscole impostando l’argomento ignoreCase
su true
:
use Illuminate\Support\Str;
$contains = Str::of('This is my name')->contains('MY', ignoreCase: true);
// true
containsAll
Il metodo containsAll
verifica se la stringa fornita contiene tutti i valori nell’array specificato:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['my', 'name']);
// true
Puoi disabilitare la sensibilità alla maiuscola impostando l’argomento ignoreCase
su true
:
use Illuminate\Support\Str;
$containsAll = Str::of('This is my name')->containsAll(['MY', 'NAME'], ignoreCase: true);
// true
deduplicate
Il metodo deduplicate
sostituisce le istanze consecutive di un carattere con una singola istanza di quel carattere nella stringa fornita. Per default, il metodo deduplica gli spazi:
use Illuminate\Support\Str;
$result = Str::of('The Laravel Framework')->deduplicate();
// The Laravel Framework
Puoi specificare un carattere diverso da deduplicare passando il carattere come secondo argomento al metodo:
use Illuminate\Support\Str;
$result = Str::of('The---Laravel---Framework')->deduplicate('-');
// The-Laravel-Framework
dirname
Il metodo dirname
restituisce la parte della directory padre della stringa fornita:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->dirname();
// '/foo/bar'
Se necessario, puoi specificare quanti livelli di directory desideri rimuovere dalla stringa:
use Illuminate\Support\Str;
$string = Str::of('/foo/bar/baz')->dirname(2);
// '/foo'
endsWith
Il metodo endsWith
determina se la stringa fornita termina con il valore specificato:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->endsWith('name');
// true
Puoi anche passare un array di valori per verificare se la stringa termina con uno dei valori nell’array:
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
Il metodo exactly
verifica se una stringa corrisponde esattamente a un’altra:
use Illuminate\Support\Str;
$result = Str::of('Laravel')->exactly('Laravel');
// true
excerpt
Il metodo excerpt
estrae un estratto dalla stringa che corrisponde alla prima occorrenza di una frase all’interno di essa:
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('my', [
'radius' => 3
]);
// '...is my na...'
L’opzione radius
, che di default è 100
, permette di definire il numero di caratteri che devono apparire da ciascun lato della stringa troncata.
Inoltre, puoi usare l’opzione omission
per cambiare la stringa che verrà aggiunta all’inizio e alla fine della stringa troncata:
use Illuminate\Support\Str;
$excerpt = Str::of('This is my name')->excerpt('name', [
'radius' => 3,
'omission' => '(...) '
]);
// '(...) my name'
explode
Il metodo explode
divide la stringa usando il delimitatore fornito e restituisce una collezione contenente ogni sezione della stringa divisa:
use Illuminate\Support\Str;
$collection = Str::of('foo bar baz')->explode(' ');
// collect(['foo', 'bar', 'baz'])
finish
Il metodo finish
aggiunge un’unica istanza del valore dato a una stringa se non termina già con quel valore:
use Illuminate\Support\Str;
$adjusted = Str::of('this/string')->finish('/');
// this/string/
$adjusted = Str::of('this/string/')->finish('/');
// this/string/
headline
Il metodo headline
trasforma stringhe separate da maiuscole, trattini o underscore in una stringa con spazi e la prima lettera di ogni parola maiuscola:
use Illuminate\Support\Str;
$headline = Str::of('taylor_otwell')->headline();
// Taylor Otwell
$headline = Str::of('EmailNotificationSent')->headline();
// Email Notification Sent
inlineMarkdown
Il metodo inlineMarkdown
converte Markdown in stile GitHub in HTML inline usando CommonMark. Tuttavia, a differenza del metodo markdown
, non racchiude tutto l’HTML generato in un elemento a livello di blocco:
use Illuminate\Support\Str;
$html = Str::of('**Laravel**')->inlineMarkdown();
// <strong>Laravel</strong>
Sicurezza in Markdown
Per impostazione predefinita, Markdown supporta l’HTML grezzo, il che può esporre a vulnerabilità di Cross-Site Scripting (XSS) quando si utilizzano input utente non filtrati. Secondo la documentazione sulla sicurezza di CommonMark, puoi usare l’opzione html_input
per sfuggire o rimuovere l’HTML grezzo e l’opzione allow_unsafe_links
per decidere se consentire link non sicuri. Se hai bisogno di permettere qualche HTML grezzo, devi passare il Markdown compilato attraverso un 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
Il metodo is
verifica se una determinata stringa corrisponde a un pattern specifico. Gli asterischi possono essere usati come caratteri jolly.
use Illuminate\Support\Str;
$matches = Str::of('foobar')->is('foo*');
// true
$matches = Str::of('foobar')->is('baz*');
// false
isAscii
Il metodo isAscii
verifica se una determinata stringa è una stringa ASCII:
use Illuminate\Support\Str;
$result = Str::of('Taylor')->isAscii();
// true
$result = Str::of('ü')->isAscii();
// false
isEmpty
Il metodo isEmpty
verifica se la stringa fornita è vuota:
use Illuminate\Support\Str;
$result = Str::of(' ')->trim()->isEmpty();
// true
$result = Str::of('Laravel')->trim()->isEmpty();
// false
isNotEmpty
Il metodo isNotEmpty
determina se la stringa fornita non è vuota:
use Illuminate\Support\Str;
$result = Str::of(' ')->trim()->isNotEmpty();
// falso
$result = Str::of('Laravel')->trim()->isNotEmpty();
// vero
isJson
Il metodo isJson
determina se una stringa fornita è un JSON valido:
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
Il metodo isUlid
determina se una stringa data è un ULID:
use Illuminate\Support\Str;
$result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid();
// true
$result = Str::of('Taylor')->isUlid();
// false
isUrl
Il metodo isUrl
verifica se una determinata stringa è un URL:
use Illuminate\Support\Str;
$result = Str::of('http://example.com')->isUrl();
// true
$result = Str::of('Taylor')->isUrl();
// false
Il metodo isUrl
considera un’ampia gamma di protocolli come validi. Tuttavia, puoi specificare i protocolli che devono essere considerati validi fornendoli al metodo isUrl
:
$result = Str::of('http://example.com')->isUrl(['http', 'https']);
isUuid
Il metodo isUuid
determina se una stringa fornita è un UUID:
use Illuminate\Support\Str;
$result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid();
// true
$result = Str::of('Taylor')->isUuid();
// false
kebab
Il metodo kebab
converte la stringa fornita in kebab-case
:
use Illuminate\Support\Str;
$converted = Str::of('fooBar')->kebab();
// foo-bar
lcfirst
Il metodo lcfirst
restituisce la stringa data con il primo carattere in minuscolo:
use Illuminate\Support\Str;
$string = Str::of('Foo Bar')->lcfirst();
// foo Bar
length
Il metodo length
restituisce la lunghezza della stringa fornita:
use Illuminate\Support\Str;
$length = Str::of('Laravel')->length();
// 7
limit
Il metodo limit
tronca la stringa data alla lunghezza specificata:
use Illuminate\Support\Str;
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20);
// The quick brown fox...
Puoi anche passare un secondo argomento per cambiare la stringa che verrà aggiunta alla fine della stringa troncata:
$truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)');
// The quick brown fox (...)
Se desideri preservare parole complete durante il troncamento della stringa, puoi utilizzare l’argomento preserveWords
. Quando questo argomento è true
, la stringa verrà troncata alla più vicina frontiera di parola completa:
$truncated = Str::of('The quick brown fox')->limit(12, preserveWords: true);
// The quick...
lower
Il metodo lower
converte la stringa fornita in minuscolo:
use Illuminate\Support\Str;
$result = Str::of('LARAVEL')->lower();
// 'laravel'
markdown
Il metodo markdown
converte GitHub flavored Markdown in 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>
Sicurezza in Markdown
Per impostazione predefinita, Markdown supporta l’HTML raw, il che può esporre vulnerabilità di Cross-Site Scripting (XSS) quando si utilizza input utente non filtrato. Secondo la documentazione sulla sicurezza di CommonMark, puoi utilizzare l’opzione html_input
per eseguire l’escape o rimuovere l’HTML raw, e l’opzione allow_unsafe_links
per specificare se permettere link non sicuri. Se hai bisogno di consentire alcuni HTML raw, dovresti passare il Markdown compilato attraverso un 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
Il metodo mask
nasconde una parte di una stringa con un carattere ripetuto e può essere usato per offuscare segmenti di stringhe come indirizzi email e numeri di telefono:
use Illuminate\Support\Str;
$string = Str::of('taylor@example.com')->mask('*', 3);
// tay***************
Se necessario, puoi fornire numeri negativi come terzo o quarto argomento al metodo mask
, che indicherà al metodo di iniziare a mascherare a una certa distanza dalla fine della stringa:
$string = Str::of('taylor@example.com')->mask('*', -15, 3);
// tay***@example.com
$string = Str::of('taylor@example.com')->mask('*', 4, -4);
// tayl**********.com
match
Il metodo match
restituisce la parte di una stringa che corrisponde a un determinato pattern di espressione regolare:
use Illuminate\Support\Str;
$result = Str::of('foo bar')->match('/bar/');
// 'bar'
$result = Str::of('foo bar')->match('/foo (.*)/');
// 'bar'
matchAll
Il metodo matchAll
restituisce una collezione contenente le parti di una stringa che corrispondono a un determinato pattern di espressione regolare:
use Illuminate\Support\Str;
$result = Str::of('bar foo bar')->matchAll('/bar/');
// collect(['bar', 'bar'])
Se specifichi un gruppo di corrispondenza all’interno dell’espressione, Laravel restituirà una collezione delle corrispondenze del primo gruppo:
use Illuminate\Support\Str;
$result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/');
// collect(['un', 'ly']);
Se non vengono trovate corrispondenze, verrà restituita una collezione vuota.
isMatch
Il metodo isMatch
restituisce true
se la stringa corrisponde a una determinata espressione regolare:
use Illuminate\Support\Str;
$result = Str::of('foo bar')->isMatch('/foo (.*)/');
// true
$result = Str::of('laravel')->isMatch('/foo (.*)/');
// false
newLine
Il metodo newLine
aggiunge un carattere di fine riga a una stringa:
use Illuminate\Support\Str;
$padded = Str::of('Laravel')->newLine()->append('Framework');
// 'Laravel
// Framework'
padBoth
Il metodo padBoth
utilizza la funzione str_pad
di PHP, aggiungendo caratteri all’inizio e alla fine di una stringa fino a raggiungere la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::of('James')->padBoth(10, '_');
// '__James___'
$padded = Str::of('James')->padBoth(10);
// ' James '
padLeft
Il metodo padLeft
utilizza la funzione str_pad
di PHP, aggiungendo caratteri a sinistra di una stringa fino a raggiungere la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::of('James')->padLeft(10, '-=');
// '-=-=-James'
$padded = Str::of('James')->padLeft(10);
// ' James'
padRight
Il metodo padRight
utilizza la funzione str_pad
di PHP, aggiungendo sul lato destro di una stringa un’altra stringa fino a quando la stringa finale raggiunge la lunghezza desiderata:
use Illuminate\Support\Str;
$padded = Str::of('James')->padRight(10, '-');
// 'James-----'
$padded = Str::of('James')->padRight(10);
// 'James '
pipe
Il metodo pipe
ti permette di trasformare la stringa passando il suo valore attuale alla callable fornita:
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
Il metodo plural
converte una stringa singolare nella sua forma plurale. Questa funzione supporta qualsiasi delle lingue supportate dal pluralizzatore di Laravel:
use Illuminate\Support\Str;
$plural = Str::of('car')->plural();
// cars
$plural = Str::of('child')->plural();
// children
Puoi fornire un numero intero come secondo argomento alla funzione per ottenere la forma singolare o plurale della stringa:
use Illuminate\Support\Str;
$plural = Str::of('child')->plural(2);
// children
$plural = Str::of('child')->plural(1);
// child
position
Il metodo position
restituisce la posizione della prima occorrenza di una sottostringa in una stringa. Se la sottostringa non esiste nella stringa, viene restituito false
:
use Illuminate\Support\Str;
$position = Str::of('Hello, World!')->position('Hello');
// 0
$position = Str::of('Hello, World!')->position('W');
// 7
prepend
Il metodo prepend
aggiunge i valori forniti all’inizio della stringa:
use Illuminate\Support\Str;
$string = Str::of('Framework')->prepend('Laravel ');
// Laravel Framework
remove
Il metodo remove
rimuove il valore specificato o un array di valori dalla stringa:
use Illuminate\Support\Str;
$string = Str::of('Arkansas is quite beautiful!')->remove('quite');
// Arkansas is beautiful!
Puoi anche passare false
come secondo parametro per ignorare maiuscole e minuscole durante la rimozione delle stringhe.
repeat
Il metodo repeat
ripete la stringa fornita:
use Illuminate\Support\Str;
$repeated = Str::of('a')->repeat(5);
// aaaaa
replace
Il metodo replace
sostituisce una determinata stringa all’interno di un’altra stringa:
use Illuminate\Support\Str;
$replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x');
// Laravel 7.x
Il metodo replace
accetta anche un parametro caseSensitive
. Per default, replace
è sensibile alle maiuscole:
$replaced = Str::of('macOS 13.x')->replace(
'macOS', 'iOS', caseSensitive: false
);
replaceArray
Il metodo replaceArray
sostituisce un valore dato nella stringa sequenzialmente usando un array:
use Illuminate\Support\Str;
$string = 'L\'evento avrà luogo tra ? e ?';
$replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']);
// L'evento avrà luogo tra 8:30 e 9:00
replaceFirst
Il metodo replaceFirst
sostituisce la prima occorrenza di un determinato valore in una stringa:
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
Il metodo replaceLast
sostituisce l’ultima occorrenza di un determinato valore in una stringa:
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
Il metodo replaceMatches
sostituisce tutte le parti di una stringa che corrispondono a un pattern con la stringa di sostituzione fornita:
use Illuminate\Support\Str;
$replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '')
// '15015551000'
Il metodo replaceMatches
accetta anche una closure che verrà eseguita per ogni parte della stringa che corrisponde al pattern dato, permettendoti di eseguire la logica di sostituzione all’interno della closure e restituire il valore sostituito:
use Illuminate\Support\Str;
$replaced = Str::of('123')->replaceMatches('/\d/', function (array $matches) {
return '['.$matches[0].']';
});
// '[1][2][3]'
replaceStart
Il metodo replaceStart
sostituisce la prima occorrenza del valore specificato solo se appare all’inizio della stringa:
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
Il metodo replaceEnd
sostituisce l’ultima occorrenza del valore specificato solo se il valore è alla fine della stringa:
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
Il metodo scan
analizza l’input da una stringa in una collection secondo un formato supportato dalla funzione PHP sscanf
:
use Illuminate\Support\Str;
$collection = Str::of('filename.jpg')->scan('%[^.].%s');
// collect(['filename', 'jpg'])
singular
Il metodo singular
converte una stringa nella sua forma singolare. Questa funzione supporta qualsiasi delle lingue supportate dal pluralizzatore di Laravel:
use Illuminate\Support\Str;
$singular = Str::of('cars')->singular();
// car
$singular = Str::of('children')->singular();
// child
slug
Il metodo slug
genera uno "slug" adatto per URL dalla stringa fornita:
use Illuminate\Support\Str;
$slug = Str::of('Laravel Framework')->slug('-');
// laravel-framework
snake
Il metodo snake
converte la stringa fornita in snake_case
:
use Illuminate\Support\Str;
$converted = Str::of('fooBar')->snake();
// foo_bar
split
Il metodo split
separa una stringa in una collezione usando una espressione regolare:
use Illuminate\Support\Str;
$segments = Str::of('one, two, three')->split('/[\s,]+/');
// collect(["one", "two", "three"])
squish
Il metodo squish
rimuove tutti gli spazi bianchi inutili da una stringa, inclusi gli spazi extra tra le parole:
use Illuminate\Support\Str;
$string = Str::of(' laravel framework ')->squish();
// laravel framework
start
Il metodo start
aggiunge un’unica occorrenza del valore specificato a una stringa se non inizia già con quel valore:
use Illuminate\Support\Str;
$adjusted = Str::of('this/string')->start('/');
// /this/string
$adjusted = Str::of('/this/string')->start('/');
// /this/string
startsWith
Il metodo startsWith
verifica se la stringa fornita inizia con il valore dato:
use Illuminate\Support\Str;
$result = Str::of('This is my name')->startsWith('This');
// true
stripTags
Il metodo stripTags
rimuove tutti i tag HTML e PHP da una stringa:
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
Il metodo studly
converte la stringa fornita in StudlyCase
:
use Illuminate\Support\Str;
$converted = Str::of('foo_bar')->studly();
// FooBar
substr
Il metodo substr
restituisce la porzione della stringa specificata dai parametri start e length:
use Illuminate\Support\Str;
$string = Str::of('Laravel Framework')->substr(8);
// Framework
$string = Str::of('Laravel Framework')->substr(8, 5);
// Frame
substrReplace
Il metodo substrReplace
sostituisce una parte del testo all’interno di una stringa, iniziando dalla posizione specificata dal secondo argomento e sostituendo il numero di caratteri indicato dal terzo argomento. Passare 0
come terzo argomento del metodo inserirà la stringa nella posizione specificata senza sostituire nessuno dei caratteri esistenti nella stringa:
use Illuminate\Support\Str;
$string = Str::of('1300')->substrReplace(':', 2);
// 13:
$string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0);
// The Laravel Framework
swap
Il metodo swap
sostituisce più valori nella stringa utilizzando la funzione strtr
di PHP:
use Illuminate\Support\Str;
$string = Str::of('Tacos are great!')
->swap([
'Tacos' => 'Burritos',
'great' => 'fantastic',
]);
// Burritos sono fantastici!
take
Il metodo take
restituisce un numero specificato di caratteri dall’inizio della stringa:
use Illuminate\Support\Str;
$taken = Str::of('Build something amazing!')->take(5);
// Build
tap
Il metodo tap
passa la stringa alla closure fornita, permettendoti di esaminare e interagire con la stringa senza modificarla. La stringa originale viene restituita dal metodo tap
indipendentemente da ciò che viene restituito dalla closure:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Laravel')
->append(' Framework')
->tap(function (Stringable $string) {
dump('String dopo append: '.$string);
})
->upper();
// LARAVEL FRAMEWORK
test
Il metodo test
verifica se una stringa corrisponde al pattern dell’espressione regolare fornita:
use Illuminate\Support\Str;
$result = Str::of('Laravel Framework')->test('/Laravel/');
// true
title
Il metodo title
converte la stringa fornita in 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
Il metodo toBase64
converte la stringa fornita in Base64:
use Illuminate\Support\Str;
$base64 = Str::of('Laravel')->toBase64();
// TGFyYXZlbA==
toHtmlString
Il metodo toHtmlString
converte la stringa fornita in un’istanza di Illuminate\Support\HtmlString
, che non sarà sottoposta a escape quando viene renderizzata nei template Blade:
use Illuminate\Support\Str;
$htmlString = Str::of('Nuno Maduro')->toHtmlString();
transliterate
Il metodo transliterate
cerca di trasformare una stringa in una rappresentazione ASCII simile:
use Illuminate\Support\Str;
$email = Str::of('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ')->transliterate()
// 'test@laravel.com'
trim
Il metodo trim
elimina gli spazi all’inizio e alla fine della stringa fornita. Diversamente dalla funzione trim
nativa di PHP, il metodo trim
di Laravel rimuove anche i caratteri di spazio unicode:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->trim();
// 'Laravel'
$string = Str::of('/Laravel/')->trim('/');
// 'Laravel'
ltrim
Il metodo ltrim
rimuove il lato sinistro della stringa. A differenza della funzione nativa ltrim
di PHP, il metodo ltrim
di Laravel rimuove anche i caratteri di spaziatura unicode:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->ltrim();
// 'Laravel '
$string = Str::of('/Laravel/')->ltrim('/');
// 'Laravel/'
rtrim
Il metodo rtrim
rimuove gli spazi a destra della stringa fornita. A differenza della funzione nativa di PHP rtrim
, il metodo rtrim
di Laravel rimuove anche i caratteri di spazio unicode:
use Illuminate\Support\Str;
$string = Str::of(' Laravel ')->rtrim();
// ' Laravel'
$string = Str::of('/Laravel/')->rtrim('/');
// '/Laravel'
ucfirst
Il metodo ucfirst
restituisce la stringa fornita con il primo carattere maiuscolo:
use Illuminate\Support\Str;
$string = Str::of('foo bar')->ucfirst();
// Foo bar
ucsplit
Il metodo ucsplit
suddivide la stringa fornita in una collection utilizzando i caratteri maiuscoli:
use Illuminate\Support\Str;
$string = Str::of('Foo Bar')->ucsplit();
// collect(['Foo', 'Bar'])
unwrap
Il metodo unwrap
rimuove le stringhe specificate dall’inizio e dalla fine di una stringa data:
use Illuminate\Support\Str;
Str::of('-Laravel-')->unwrap('-');
// Laravel
Str::of('{framework: "Laravel"}')->unwrap('{', '}');
// framework: "Laravel"
upper
Il metodo upper
converte la stringa fornita in maiuscolo:
use Illuminate\Support\Str;
$adjusted = Str::of('laravel')->upper();
// LARAVEL
when
Il metodo when
invoca la closure fornita se una determinata condizione è true
. La closure riceverà l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Taylor')
->when(true, function (Stringable $string) {
return $string->append(' Otwell');
});
// 'Taylor Otwell'
Se necessario, puoi passare un’altra closure come terzo parametro al metodo when
. Questa closure verrà eseguita se il parametro della condizione valuta a false
.
whenContains
Il metodo whenContains
esegue la closure fornita se la stringa contiene il valore specificato. La closure riceverà l’istanza fluent della stringa:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContains('tony', function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
Se necessario, puoi passare un’altra closure come terzo parametro al metodo when
. Questa closure verrà eseguita se la stringa non contiene il valore specificato.
Puoi anche passare un array di valori per verificare se la stringa contiene uno dei valori presenti nell’array:
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
Il metodo whenContainsAll
esegue la closure fornita se la stringa contiene tutte le sottostringhe specificate. La closure riceve l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('tony stark')
->whenContainsAll(['tony', 'stark'], function (Stringable $string) {
return $string->title();
});
// 'Tony Stark'
Se necessario, puoi passare un’altra closure come terzo parametro al metodo when
. Questa closure verrà eseguita se la condizione risulta false
.
whenEmpty
Il metodo whenEmpty
esegue la closure fornita se la stringa è vuota. Se la closure restituisce un valore, quel valore sarà anche restituito dal metodo whenEmpty
. Se la closure non restituisce un valore, verrà restituita l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of(' ')->whenEmpty(function (Stringable $string) {
return $string->trim()->prepend('Laravel');
});
// 'Laravel'
whenNotEmpty
Il metodo whenNotEmpty
esegue la closure fornita se la stringa non è vuota. Se la closure restituisce un valore, anche quel valore sarà restituito dal metodo whenNotEmpty
. Se la closure non restituisce un valore, verrà restituita l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('Framework')->whenNotEmpty(function (Stringable $string) {
return $string->prepend('Laravel ');
});
// 'Laravel Framework'
whenStartsWith
Il metodo whenStartsWith
invoca la closure fornita se la stringa inizia con la sottostringa specificata. La closure riceverà l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenStartsWith('disney', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenEndsWith
Il metodo whenEndsWith
esegue la closure fornita se la stringa termina con la sottostringa specificata. La closure riceverà l’istanza fluent della stringa:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('disney world')->whenEndsWith('world', function (Stringable $string) {
return $string->title();
});
// 'Disney World'
whenExactly
Il metodo whenExactly
esegue la closure fornita se la stringa corrisponde esattamente a quella specificata. La closure riceve l’istanza fluent della stringa:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenNotExactly
Il metodo whenNotExactly
esegue la closure fornita se la stringa non corrisponde esattamente alla stringa data. La closure riceverà un’istanza di stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('framework')->whenNotExactly('laravel', function (Stringable $string) {
return $string->title();
});
// 'Framework'
whenIs
Il metodo whenIs
esegue la closure fornita se la stringa corrisponde a un determinato pattern. Gli asterischi possono essere usati come caratteri jolly. La closure riceverà l’istanza della stringa fluida:
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
Il metodo whenIsAscii
esegue la closure fornita se la stringa è ASCII a 7 bit. La closure riceverà l’istanza fluent della stringa:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel')->whenIsAscii(function (Stringable $string) {
return $string->title();
});
// 'Laravel'
whenIsUlid
Il metodo whenIsUlid
esegue la closure fornita se la stringa è un ULID valido. La closure riceve l’istanza della stringa fluida:
use Illuminate\Support\Str;
$string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function (Stringable $string) {
return $string->substr(0, 8);
});
// '01gd6r36'
whenIsUuid
Il metodo whenIsUuid
esegue la closure fornita se la stringa è un UUID valido. La closure riceverà l’istanza della stringa fluente:
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
Il metodo whenTest
invoca la closure fornita se la stringa corrisponde all’espressione regolare specificata. La closure riceve l’istanza della stringa fluente:
use Illuminate\Support\Str;
use Illuminate\Support\Stringable;
$string = Str::of('laravel framework')->whenTest('/laravel/', function (Stringable $string) {
return $string->title();
});
// 'Laravel Framework'
wordCount
Il metodo wordCount
restituisce il numero di parole presenti in una stringa:
use Illuminate\Support\Str;
Str::of('Hello, world!')->wordCount(); // 2
words
Il metodo words
limita il numero di parole in una stringa. Se necessario, puoi specificare una stringa aggiuntiva che verrà aggiunta alla stringa troncata:
use Illuminate\Support\Str;
$string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>');
// Perfectly balanced, as >>>
wrap
Il metodo wrap
avvolge la stringa fornita con una stringa aggiuntiva o con una coppia di stringhe:
use Illuminate\Support\Str;
Str::of('Laravel')->wrap('"');
// "Laravel"
Str::is('is')->wrap(before: 'This ', after: ' Laravel!');
// This is Laravel!