class Str (View source)

Traits

Properties

static protected array $macros

The registered string macros.

from  Macroable
static protected array $snakeCache

The cache of snake-cased words.

static protected array $camelCache

The cache of camel-cased words.

static protected array $studlyCache

The cache of studly-cased words.

static protected callable|null $uuidFactory

The callback that should be used to generate UUIDs.

static protected callable|null $randomStringFactory

The callback that should be used to generate random strings.

Methods

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Checks if macro is registered.

static void
flushMacros()

Flush the existing macros.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

static Stringable
of(string $string)

Get a new stringable object from the given string.

static string
after(string $subject, string $search)

Return the remainder of a string after the first occurrence of a given value.

static string
afterLast(string $subject, string $search)

Return the remainder of a string after the last occurrence of a given value.

static string
ascii(string $value, string $language = 'en')

Transliterate a UTF-8 value to ASCII.

static string
transliterate(string $string, string|null $unknown = '?', bool|null $strict = false)

Transliterate a string to its closest ASCII representation.

static string
before(string $subject, string $search)

Get the portion of a string before the first occurrence of a given value.

static string
beforeLast(string $subject, string $search)

Get the portion of a string before the last occurrence of a given value.

static string
between(string $subject, string $from, string $to)

Get the portion of a string between two given values.

static string
betweenFirst(string $subject, string $from, string $to)

Get the smallest possible portion of a string between two given values.

static string
camel(string $value)

Convert a value to camel case.

static string|false
charAt(string $subject, int $index)

Get the character at the specified index.

static bool
contains(string $haystack, string|iterable<string> $needles, bool $ignoreCase = false)

Determine if a given string contains a given substring.

static bool
containsAll(string $haystack, iterable<string> $needles, bool $ignoreCase = false)

Determine if a given string contains all array values.

static bool
endsWith(string $haystack, string|iterable<string> $needles)

Determine if a given string ends with a given substring.

static string|null
excerpt(string $text, string $phrase = '', array $options = [])

Extracts an excerpt from text that matches the first instance of a phrase.

static string
finish(string $value, string $cap)

Cap a string with a single instance of a given value.

static string
wrap(string $value, string $before, string|null $after = null)

Wrap the string with the given strings.

static bool
is(string|iterable<string> $pattern, string $value)

Determine if a given string matches a given pattern.

static bool
isAscii(string $value)

Determine if a given string is 7 bit ASCII.

static bool
isJson(string $value)

Determine if a given string is valid JSON.

static bool
isUuid(string $value)

Determine if a given string is a valid UUID.

static bool
isUlid(string $value)

Determine if a given string is a valid ULID.

static string
kebab(string $value)

Convert a string to kebab case.

static int
length(string $value, string|null $encoding = null)

Return the length of the given string.

static string
limit(string $value, int $limit = 100, string $end = '...')

Limit the number of characters in a string.

static string
lower(string $value)

Convert the given string to lower-case.

static string
words(string $value, int $words = 100, string $end = '...')

Limit the number of words in a string.

static string
markdown(string $string, array $options = [])

Converts GitHub flavored Markdown into HTML.

static string
inlineMarkdown(string $string, array $options = [])

Converts inline Markdown into HTML.

static string
mask(string $string, string $character, int $index, int|null $length = null, string $encoding = 'UTF-8')

Masks a portion of a string with a repeated character.

static string
match(string $pattern, string $subject)

Get the string matching the given pattern.

static bool
isMatch(string|iterable<string> $pattern, string $value)

Determine if a given string matches a given pattern.

static Collection
matchAll(string $pattern, string $subject)

Get the string matching the given pattern.

static string
padBoth(string $value, int $length, string $pad = ' ')

Pad both sides of a string with another.

static string
padLeft(string $value, int $length, string $pad = ' ')

Pad the left side of a string with another.

static string
padRight(string $value, int $length, string $pad = ' ')

Pad the right side of a string with another.

static array<int,string|null>
parseCallback(string $callback, string|null $default = null)

Parse a Class[@]method style callback into class and method.

static string
plural(string $value, int|array|Countable $count = 2)

Get the plural form of an English word.

static string
pluralStudly(string $value, int|array|Countable $count = 2)

Pluralize the last word of an English, studly caps case string.

static string
password(int $length = 32, bool $letters = true, bool $numbers = true, bool $symbols = true, bool $spaces = false)

Generate a random, secure password.

static string
random(int $length = 16)

Generate a more truly "random" alpha-numeric string.

static void
createRandomStringsUsing(callable $factory = null)

Set the callable that will be used to generate random strings.

static void
createRandomStringsUsingSequence(array $sequence, callable|null $whenMissing = null)

Set the sequence that will be used to generate random strings.

static void
createRandomStringsNormally()

Indicate that random strings should be created normally and not using a custom factory.

static string
repeat(string $string, int $times)

Repeat the given string.

static string
replaceArray(string $search, iterable<string> $replace, string $subject)

Replace a given value in the string sequentially with an array.

static string
replace(string|iterable<string> $search, string|iterable<string> $replace, string|iterable<string> $subject)

Replace the given value in the given string.

static string
replaceFirst(string $search, string $replace, string $subject)

Replace the first occurrence of a given value in the string.

static string
replaceLast(string $search, string $replace, string $subject)

Replace the last occurrence of a given value in the string.

static string
remove(string|iterable<string> $search, string $subject, bool $caseSensitive = true)

Remove any occurrence of the given string in the subject.

static string
reverse(string $value)

Reverse the given string.

static string
start(string $value, string $prefix)

Begin a string with a single instance of a given value.

static string
upper(string $value)

Convert the given string to upper-case.

static string
title(string $value)

Convert the given string to title case.

static string
headline(string $value)

Convert the given string to title case for each word.

static string
singular(string $value)

Get the singular form of an English word.

static string
slug(string $title, string $separator = '-', string|null $language = 'en', array<string,string> $dictionary = ['@' => 'at'])

Generate a URL friendly "slug" from a given string.

static string
snake(string $value, string $delimiter = '_')

Convert a string to snake case.

static string
squish(string $value)

Remove all "extra" blank space from the given string.

static bool
startsWith(string $haystack, string|iterable<string> $needles)

Determine if a given string starts with a given substring.

static string
studly(string $value)

Convert a value to studly caps case.

static string
substr(string $string, int $start, int|null $length = null, string $encoding = 'UTF-8')

Returns the portion of the string specified by the start and length parameters.

static int
substrCount(string $haystack, string $needle, int $offset = 0, int|null $length = null)

Returns the number of substring occurrences.

static string|string[]
substrReplace(string|string[] $string, string|string[] $replace, int|int[] $offset = 0, int|int[]|null $length = null)

Replace text within a portion of a string.

static string
swap(array $map, string $subject)

Swap multiple keywords in a string with other keywords.

static string
lcfirst(string $string)

Make a string's first character lowercase.

static string
ucfirst(string $string)

Make a string's first character uppercase.

static string[]
ucsplit(string $string)

Split a string into pieces by uppercase characters.

static int
wordCount(string $string, string|null $characters = null)

Get the number of words a string contains.

static UuidInterface
uuid()

Generate a UUID (version 4).

static UuidInterface
orderedUuid()

Generate a time-ordered UUID (version 4).

static void
createUuidsUsing(callable $factory = null)

Set the callable that will be used to generate UUIDs.

static void
createUuidsUsingSequence(array $sequence, callable|null $whenMissing = null)

Set the sequence that will be used to generate UUIDs.

static UuidInterface
freezeUuids(Closure $callback = null)

Always return the same UUID when generating new UUIDs.

static void
createUuidsNormally()

Indicate that UUIDs should be created normally and not using a custom factory.

static Ulid
ulid(DateTimeInterface|null $time = null)

Generate a ULID.

static void
flushCache()

Remove all strings from the casing caches.

Details

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static void flushMacros()

Flush the existing macros.

Return Value

void

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

static Stringable of(string $string)

Get a new stringable object from the given string.

Parameters

string $string

Return Value

Stringable

static string after(string $subject, string $search)

Return the remainder of a string after the first occurrence of a given value.

Parameters

string $subject
string $search

Return Value

string

static string afterLast(string $subject, string $search)

Return the remainder of a string after the last occurrence of a given value.

Parameters

string $subject
string $search

Return Value

string

static string ascii(string $value, string $language = 'en')

Transliterate a UTF-8 value to ASCII.

Parameters

string $value
string $language

Return Value

string

static string transliterate(string $string, string|null $unknown = '?', bool|null $strict = false)

Transliterate a string to its closest ASCII representation.

Parameters

string $string
string|null $unknown
bool|null $strict

Return Value

string

static string before(string $subject, string $search)

Get the portion of a string before the first occurrence of a given value.

Parameters

string $subject
string $search

Return Value

string

static string beforeLast(string $subject, string $search)

Get the portion of a string before the last occurrence of a given value.

Parameters

string $subject
string $search

Return Value

string

static string between(string $subject, string $from, string $to)

Get the portion of a string between two given values.

Parameters

string $subject
string $from
string $to

Return Value

string

static string betweenFirst(string $subject, string $from, string $to)

Get the smallest possible portion of a string between two given values.

Parameters

string $subject
string $from
string $to

Return Value

string

static string camel(string $value)

Convert a value to camel case.

Parameters

string $value

Return Value

string

static string|false charAt(string $subject, int $index)

Get the character at the specified index.

Parameters

string $subject
int $index

Return Value

string|false

static bool contains(string $haystack, string|iterable<string> $needles, bool $ignoreCase = false)

Determine if a given string contains a given substring.

Parameters

string $haystack
string|iterable<string> $needles
bool $ignoreCase

Return Value

bool

static bool containsAll(string $haystack, iterable<string> $needles, bool $ignoreCase = false)

Determine if a given string contains all array values.

Parameters

string $haystack
iterable<string> $needles
bool $ignoreCase

Return Value

bool

static bool endsWith(string $haystack, string|iterable<string> $needles)

Determine if a given string ends with a given substring.

Parameters

string $haystack
string|iterable<string> $needles

Return Value

bool

static string|null excerpt(string $text, string $phrase = '', array $options = [])

Extracts an excerpt from text that matches the first instance of a phrase.

Parameters

string $text
string $phrase
array $options

Return Value

string|null

static string finish(string $value, string $cap)

Cap a string with a single instance of a given value.

Parameters

string $value
string $cap

Return Value

string

static string wrap(string $value, string $before, string|null $after = null)

Wrap the string with the given strings.

Parameters

string $value
string $before
string|null $after

Return Value

string

static bool is(string|iterable<string> $pattern, string $value)

Determine if a given string matches a given pattern.

Parameters

string|iterable<string> $pattern
string $value

Return Value

bool

static bool isAscii(string $value)

Determine if a given string is 7 bit ASCII.

Parameters

string $value

Return Value

bool

static bool isJson(string $value)

Determine if a given string is valid JSON.

Parameters

string $value

Return Value

bool

static bool isUuid(string $value)

Determine if a given string is a valid UUID.

Parameters

string $value

Return Value

bool

static bool isUlid(string $value)

Determine if a given string is a valid ULID.

Parameters

string $value

Return Value

bool

static string kebab(string $value)

Convert a string to kebab case.

Parameters

string $value

Return Value

string

static int length(string $value, string|null $encoding = null)

Return the length of the given string.

Parameters

string $value
string|null $encoding

Return Value

int

static string limit(string $value, int $limit = 100, string $end = '...')

Limit the number of characters in a string.

Parameters

string $value
int $limit
string $end

Return Value

string

static string lower(string $value)

Convert the given string to lower-case.

Parameters

string $value

Return Value

string

static string words(string $value, int $words = 100, string $end = '...')

Limit the number of words in a string.

Parameters

string $value
int $words
string $end

Return Value

string

static string markdown(string $string, array $options = [])

Converts GitHub flavored Markdown into HTML.

Parameters

string $string
array $options

Return Value

string

static string inlineMarkdown(string $string, array $options = [])

Converts inline Markdown into HTML.

Parameters

string $string
array $options

Return Value

string

static string mask(string $string, string $character, int $index, int|null $length = null, string $encoding = 'UTF-8')

Masks a portion of a string with a repeated character.

Parameters

string $string
string $character
int $index
int|null $length
string $encoding

Return Value

string

static string match(string $pattern, string $subject)

Get the string matching the given pattern.

Parameters

string $pattern
string $subject

Return Value

string

static bool isMatch(string|iterable<string> $pattern, string $value)

Determine if a given string matches a given pattern.

Parameters

string|iterable<string> $pattern
string $value

Return Value

bool

static Collection matchAll(string $pattern, string $subject)

Get the string matching the given pattern.

Parameters

string $pattern
string $subject

Return Value

Collection

static string padBoth(string $value, int $length, string $pad = ' ')

Pad both sides of a string with another.

Parameters

string $value
int $length
string $pad

Return Value

string

static string padLeft(string $value, int $length, string $pad = ' ')

Pad the left side of a string with another.

Parameters

string $value
int $length
string $pad

Return Value

string

static string padRight(string $value, int $length, string $pad = ' ')

Pad the right side of a string with another.

Parameters

string $value
int $length
string $pad

Return Value

string

static array<int,string|null> parseCallback(string $callback, string|null $default = null)

Parse a Class[@]method style callback into class and method.

Parameters

string $callback
string|null $default

Return Value

array<int,string|null>

static string plural(string $value, int|array|Countable $count = 2)

Get the plural form of an English word.

Parameters

string $value
int|array|Countable $count

Return Value

string

static string pluralStudly(string $value, int|array|Countable $count = 2)

Pluralize the last word of an English, studly caps case string.

Parameters

string $value
int|array|Countable $count

Return Value

string

static string password(int $length = 32, bool $letters = true, bool $numbers = true, bool $symbols = true, bool $spaces = false)

Generate a random, secure password.

Parameters

int $length
bool $letters
bool $numbers
bool $symbols
bool $spaces

Return Value

string

static string random(int $length = 16)

Generate a more truly "random" alpha-numeric string.

Parameters

int $length

Return Value

string

static void createRandomStringsUsing(callable $factory = null)

Set the callable that will be used to generate random strings.

Parameters

callable $factory

Return Value

void

static void createRandomStringsUsingSequence(array $sequence, callable|null $whenMissing = null)

Set the sequence that will be used to generate random strings.

Parameters

array $sequence
callable|null $whenMissing

Return Value

void

static void createRandomStringsNormally()

Indicate that random strings should be created normally and not using a custom factory.

Return Value

void

static string repeat(string $string, int $times)

Repeat the given string.

Parameters

string $string
int $times

Return Value

string

static string replaceArray(string $search, iterable<string> $replace, string $subject)

Replace a given value in the string sequentially with an array.

Parameters

string $search
iterable<string> $replace
string $subject

Return Value

string

static string replace(string|iterable<string> $search, string|iterable<string> $replace, string|iterable<string> $subject)

Replace the given value in the given string.

Parameters

string|iterable<string> $search
string|iterable<string> $replace
string|iterable<string> $subject

Return Value

string

static string replaceFirst(string $search, string $replace, string $subject)

Replace the first occurrence of a given value in the string.

Parameters

string $search
string $replace
string $subject

Return Value

string

static string replaceLast(string $search, string $replace, string $subject)

Replace the last occurrence of a given value in the string.

Parameters

string $search
string $replace
string $subject

Return Value

string

static string remove(string|iterable<string> $search, string $subject, bool $caseSensitive = true)

Remove any occurrence of the given string in the subject.

Parameters

string|iterable<string> $search
string $subject
bool $caseSensitive

Return Value

string

static string reverse(string $value)

Reverse the given string.

Parameters

string $value

Return Value

string

static string start(string $value, string $prefix)

Begin a string with a single instance of a given value.

Parameters

string $value
string $prefix

Return Value

string

static string upper(string $value)

Convert the given string to upper-case.

Parameters

string $value

Return Value

string

static string title(string $value)

Convert the given string to title case.

Parameters

string $value

Return Value

string

static string headline(string $value)

Convert the given string to title case for each word.

Parameters

string $value

Return Value

string

static string singular(string $value)

Get the singular form of an English word.

Parameters

string $value

Return Value

string

static string slug(string $title, string $separator = '-', string|null $language = 'en', array<string,string> $dictionary = ['@' => 'at'])

Generate a URL friendly "slug" from a given string.

Parameters

string $title
string $separator
string|null $language
array<string,string> $dictionary

Return Value

string

static string snake(string $value, string $delimiter = '_')

Convert a string to snake case.

Parameters

string $value
string $delimiter

Return Value

string

static string squish(string $value)

Remove all "extra" blank space from the given string.

Parameters

string $value

Return Value

string

static bool startsWith(string $haystack, string|iterable<string> $needles)

Determine if a given string starts with a given substring.

Parameters

string $haystack
string|iterable<string> $needles

Return Value

bool

static string studly(string $value)

Convert a value to studly caps case.

Parameters

string $value

Return Value

string

static string substr(string $string, int $start, int|null $length = null, string $encoding = 'UTF-8')

Returns the portion of the string specified by the start and length parameters.

Parameters

string $string
int $start
int|null $length
string $encoding

Return Value

string

static int substrCount(string $haystack, string $needle, int $offset = 0, int|null $length = null)

Returns the number of substring occurrences.

Parameters

string $haystack
string $needle
int $offset
int|null $length

Return Value

int

static string|string[] substrReplace(string|string[] $string, string|string[] $replace, int|int[] $offset = 0, int|int[]|null $length = null)

Replace text within a portion of a string.

Parameters

string|string[] $string
string|string[] $replace
int|int[] $offset
int|int[]|null $length

Return Value

string|string[]

static string swap(array $map, string $subject)

Swap multiple keywords in a string with other keywords.

Parameters

array $map
string $subject

Return Value

string

static string lcfirst(string $string)

Make a string's first character lowercase.

Parameters

string $string

Return Value

string

static string ucfirst(string $string)

Make a string's first character uppercase.

Parameters

string $string

Return Value

string

static string[] ucsplit(string $string)

Split a string into pieces by uppercase characters.

Parameters

string $string

Return Value

string[]

static int wordCount(string $string, string|null $characters = null)

Get the number of words a string contains.

Parameters

string $string
string|null $characters

Return Value

int

static UuidInterface uuid()

Generate a UUID (version 4).

Return Value

UuidInterface

static UuidInterface orderedUuid()

Generate a time-ordered UUID (version 4).

Return Value

UuidInterface

static void createUuidsUsing(callable $factory = null)

Set the callable that will be used to generate UUIDs.

Parameters

callable $factory

Return Value

void

static void createUuidsUsingSequence(array $sequence, callable|null $whenMissing = null)

Set the sequence that will be used to generate UUIDs.

Parameters

array $sequence
callable|null $whenMissing

Return Value

void

static UuidInterface freezeUuids(Closure $callback = null)

Always return the same UUID when generating new UUIDs.

Parameters

Closure $callback

Return Value

UuidInterface

static void createUuidsNormally()

Indicate that UUIDs should be created normally and not using a custom factory.

Return Value

void

static Ulid ulid(DateTimeInterface|null $time = null)

Generate a ULID.

Parameters

DateTimeInterface|null $time

Return Value

Ulid

static void flushCache()

Remove all strings from the casing caches.

Return Value

void