Class Text
Text handling methods.
Method Summary
- 
          _wordWrap() protected staticUnicode aware version of wordwrap as helper method. 
- 
          ascii() public staticConverts the decimal value of a multibyte character string to a string 
- 
          cleanInsert() public staticCleans up a Text::insert() formatted string with given $options depending on the 'clean' key in $options. The default method used is text but html is also available. The goal of this function is to replace all whitespace and unneeded markup around placeholders that did not get replaced by Text::insert(). 
- 
          excerpt() public staticExtracts an excerpt from the text surrounding the phrase with a number of characters on each side determined by radius. 
- 
          highlight() public staticHighlights a given phrase in a text. You can specify any expression in highlighter that may include the \1 expression to include the $phrase found. 
- 
          insert() public staticReplaces variable placeholders inside a $str with any given $data. Each key in the $data array corresponds to a variable placeholder name in $str. Example: Text::insert(':name is :age years old.', ['name' => 'Bob', '65']);Returns: Bob is 65 years old. 
- 
          isMultibyte() public staticCheck if the string contain multibyte characters 
- 
          parseFileSize() public staticConverts filesize from human readable string to bytes 
- 
          stripLinks() public staticStrips given text of all links (<a href=....). 
- 
          tail() public staticTruncates text starting from the end. 
- 
          toList() public staticCreates a comma separated list where the last two items are joined with 'and', forming natural language. 
- 
          tokenize() public staticTokenizes a string using $separator, ignoring any instance of $separator that appears between $leftBound and $rightBound. 
- 
          truncate() public staticTruncates text. 
- 
          utf8() public staticConverts a multibyte character string to the decimal value of the character 
- 
          uuid() public staticGenerate a random UUID version 4 
- 
          wordWrap() public staticUnicode and newline aware version of wordwrap. 
- 
          wrap() public staticWraps text to a specific width, can optionally wrap at word breaks. 
- 
          wrapBlock() public staticWraps a complete block of text to a specific width, can optionally wrap at word breaks. 
Method Detail
_wordWrap() ¶ protected static
_wordWrap(string $text, int $width = 72, string $break = "\n", bool $cut = false): stringUnicode aware version of wordwrap as helper method.
Parameters
- 
                string$text
- The text to format. 
- 
                int$width optional
- The width to wrap to. Defaults to 72. 
- 
                string$break optional
- The line is broken using the optional break parameter. Defaults to '\n'. 
- 
                bool$cut optional
- If the cut is set to true, the string is always wrapped at the specified width. 
Returns
stringFormatted text.
ascii() ¶ public static
ascii(array $array): stringConverts the decimal value of a multibyte character string to a string
Parameters
- 
                array$array
- Array 
Returns
stringcleanInsert() ¶ public static
cleanInsert(string $str, array $options): stringCleans up a Text::insert() formatted string with given $options depending on the 'clean' key in $options. The default method used is text but html is also available. The goal of this function is to replace all whitespace and unneeded markup around placeholders that did not get replaced by Text::insert().
Parameters
- 
                string$str
- String to clean. 
- 
                array$options
- Options list. 
Returns
stringSee Also
excerpt() ¶ public static
excerpt(string $text, string $phrase, int $radius = 100, string $ellipsis = '...'): stringExtracts an excerpt from the text surrounding the phrase with a number of characters on each side determined by radius.
Parameters
- 
                string$text
- String to search the phrase in 
- 
                string$phrase
- Phrase that will be searched for 
- 
                int$radius optional
- The amount of characters that will be returned on each side of the founded phrase 
- 
                string$ellipsis optional
- Ending that will be appended 
Returns
stringModified string
Links
highlight() ¶ public static
highlight(string $text, string|array $phrase, array $options = []): stringHighlights a given phrase in a text. You can specify any expression in highlighter that may include the \1 expression to include the $phrase found.
Options:
- formatThe piece of HTML with that the phrase will be highlighted
- htmlIf true, will ignore any HTML tags, ensuring that only the correct text is highlighted
- regexa custom regex rule that is used to match words, default is '|$tag|iu'
Parameters
- 
                string$text
- Text to search the phrase in. 
- 
                string|array$phrase
- The phrase or phrases that will be searched. 
- 
                array$options optional
- An array of HTML attributes and options. 
Returns
stringThe highlighted text
Links
insert() ¶ public static
insert(string $str, array $data, array $options = []): stringReplaces variable placeholders inside a $str with any given $data. Each key in the $data array corresponds to a variable placeholder name in $str. Example:
Text::insert(':name is :age years old.', ['name' => 'Bob', '65']);Returns: Bob is 65 years old.
Available $options are:
- before: The character or string in front of the name of the variable placeholder (Defaults to :)
- after: The character or string after the name of the variable placeholder (Defaults to null)
- escape: The character or string used to escape the before character / string (Defaults to \)
- format: A regex to use for matching variable placeholders. Default is: /(?<!\\)\:%s/(Overwrites before, after, breaks escape / clean)
- clean: A boolean or array with instructions for Text::cleanInsert
Parameters
- 
                string$str
- A string containing variable placeholders 
- 
                array$data
- A key => val array where each key stands for a placeholder variable name to be replaced with val 
- 
                array$options optional
- An array of options, see description above 
Returns
stringisMultibyte() ¶ public static
isMultibyte(string $string): boolCheck if the string contain multibyte characters
Parameters
- 
                string$string
- value to test 
Returns
boolparseFileSize() ¶ public static
parseFileSize(string $size, mixed $default = false): mixedConverts filesize from human readable string to bytes
Parameters
- 
                string$size
- Size in human readable string like '5MB', '5M', '500B', '50kb' etc. 
- 
                mixed$default optional
- Value to be returned when invalid size was used, for example 'Unknown type' 
Returns
mixedNumber of bytes as integer on success, $default on failure if not false
Throws
InvalidArgumentExceptionOn invalid Unit type.
Links
stripLinks() ¶ public static
stripLinks(string $text): stringStrips given text of all links (<a href=....).
Parameters
- 
                string$text
- Text 
Returns
stringThe text without links
tail() ¶ public static
tail(string $text, int $length = 100, array $options = []): stringTruncates text starting from the end.
Cuts a string to the length of $length and replaces the first characters with the ellipsis if the text is longer than length.
Options:
- ellipsisWill be used as Beginning and prepended to the trimmed string
- exactIf false, $text will not be cut mid-word
Parameters
- 
                string$text
- String to truncate. 
- 
                int$length optional
- Length of returned string, including ellipsis. 
- 
                array$options optional
- An array of options. 
Returns
stringTrimmed string.
toList() ¶ public static
toList(array $list, string $and = null, string $separator = ', '): stringCreates a comma separated list where the last two items are joined with 'and', forming natural language.
Parameters
- 
                array$list
- The list to be joined. 
- 
                string$and optional
- The word used to join the last and second last items together with. Defaults to 'and'. 
- 
                string$separator optional
- The separator used to join all the other items together. Defaults to ', '. 
Returns
stringThe glued together string.
Links
tokenize() ¶ public static
tokenize(string $data, string $separator = ',', string $leftBound = '(', string $rightBound = ')'): array|stringTokenizes a string using $separator, ignoring any instance of $separator that appears between $leftBound and $rightBound.
Parameters
- 
                string$data
- The data to tokenize. 
- 
                string$separator optional
- The token to split the data on. 
- 
                string$leftBound optional
- The left boundary to ignore separators in. 
- 
                string$rightBound optional
- The right boundary to ignore separators in. 
Returns
array|stringArray of tokens in $data or original input if empty.
truncate() ¶ public static
truncate(string $text, int $length = 100, array $options = []): stringTruncates text.
Cuts a string to the length of $length and replaces the last characters with the ellipsis if the text is longer than length.
Options:
- ellipsisWill be used as ending and appended to the trimmed string
- exactIf false, $text will not be cut mid-word
- htmlIf true, HTML tags would be handled correctly
Parameters
- 
                string$text
- String to truncate. 
- 
                int$length optional
- Length of returned string, including ellipsis. 
- 
                array$options optional
- An array of HTML attributes and options. 
Returns
stringTrimmed string.
Links
utf8() ¶ public static
utf8(string $string): arrayConverts a multibyte character string to the decimal value of the character
Parameters
- 
                string$string
- String to convert. 
Returns
arrayuuid() ¶ public static
uuid(): stringGenerate a random UUID version 4
Warning: This method should not be used as a random seed for any cryptographic operations. Instead you should use the openssl or mcrypt extensions.
Returns
stringRFC 4122 UUID
See Also
wordWrap() ¶ public static
wordWrap(string $text, int $width = 72, string $break = "\n", bool $cut = false): stringUnicode and newline aware version of wordwrap.
Parameters
- 
                string$text
- The text to format. 
- 
                int$width optional
- The width to wrap to. Defaults to 72. 
- 
                string$break optional
- The line is broken using the optional break parameter. Defaults to '\n'. 
- 
                bool$cut optional
- If the cut is set to true, the string is always wrapped at the specified width. 
Returns
stringFormatted text.
wrap() ¶ public static
wrap(string $text, array|int $options = []): stringWraps text to a specific width, can optionally wrap at word breaks.
Options
- widthThe width to wrap to. Defaults to 72.
- wordWrapOnly wrap on words breaks (spaces) Defaults to true.
- indentString to indent with. Defaults to null.
- indentAt0 based index to start indenting at. Defaults to 0.
Parameters
- 
                string$text
- The text to format. 
- 
                array|int$options optional
- Array of options to use, or an integer to wrap the text to. 
Returns
stringFormatted text.
wrapBlock() ¶ public static
wrapBlock(string $text, array|int $options = []): stringWraps a complete block of text to a specific width, can optionally wrap at word breaks.
Options
- widthThe width to wrap to. Defaults to 72.
- wordWrapOnly wrap on words breaks (spaces) Defaults to true.
- indentString to indent with. Defaults to null.
- indentAt0 based index to start indenting at. Defaults to 0.
Parameters
- 
                string$text
- The text to format. 
- 
                array|int$options optional
- Array of options to use, or an integer to wrap the text to. 
Returns
stringFormatted text.
