Skip to content
On this page

Text 3.0.0 ​

We know working with string is a pain sometimes, especially in French or other accented languages. For that specific reason, we provide a powerful class named Text.

To get the ball rolling, everything starts with the from method.

php
$txt = Text::from('hello world');

Everything afterward can be daisy-chained.

WARNING

to be compatible will everything you need to end your use of Text with the ->value() method. If you use the stringable interface, this can be omitted.

General features ​

length ​

Get the length of the string

value ​

Get the string value after all methods have been executed on the string.

Crypto ​

hash ​

Hash string to any supported algorithm.

sha1 ​

Calculate sha1 hash of the string.

sha256 ​

Hash string using sha256 algorithm.

sha512 ​

Hash string using sha512 algorithm.

md5 ​

Calculate md5 hash of the string.

encrypt ​

Encrypt string using SailCMS encryption feature.

decrypt ​

Decrypt a string using SailCMS encryption feature.

encode ​

Base64 encode the string

decode ​

Base64 decode the string

crc32 ​

Calculate crc32 for the string

Transforms ​

plurialize ​

Plurialize the string. Normally, you should use this on a single word.

php
Text::from('category')->pluralize()->value();
// Would generate "categories"

singularize ​

Singularize the string. Normally, you should use this on a single word.

php
Text::from('categories')->singularize()->value();
// Would generate "category"

deburr ​

Remove all accents from a string.

php
Text::From('éàîô')->deburr()->value();
// Would generate "eaio"

lower ​

Change case of string to lower.

upper ​

Change case of string to upper.

capitalize ​

Capitalize the first letter of the sentence or each word.

php
Text::from('hello world')->capitalize()->value();
// Would generate "Hello World"

Text::from('hello world')->capitalize(true)->value();
// Would generate "Hello world"

kebab ​

Change every space in the string to a dash

php
Text::from('hello world')->kebab()->value();
// Would generate "hello-world"

slug ​

Transform string into a slug or url valid string.

php
Text::From('Hello World Hè!')->slug()->value();
// Would generate "hello-world-he"

camel ​

Transforms the string using camel case.

php
Text::from('hello world')->camel()->value();
// Would generate "helloWorld"

snake ​

Transforms the string using snake case.

php
Text::from('hello world')->camel()->value();
// Would generate "hello-world"

reverse ​

Reverses the string characters. For example hello world would become dlrow olleh.

trim ​

Removes spaces and empty characters from both ends of the string.

trimLeft ​

Removes spaces and empty characters from the left side of the string.

trimRight ​

Removes spaces and empty characters from the right side of the string.

hex ​

Transforms string into hexadecimal string. For example, apple would be 6170706c65. You can use the bin method to transform the string back.

bin ​

Transform string from hexadecimal string to binary string. For example, 6170706c65 would be apple.

binary ​

Transform text to binary format (1s and 0s). For example, apple would become 1100001 1110000 1110000 1101100 1100101. You can use the text method to turn binary to regular text.

text ​

Transform text to normal text. For example, 1100001 1110000 1110000 1101100 1100101 would become apple.

pad ​

Pad a string so the total length is the given length. You can pad using the character of your choice and in the direction you want (left, right, both).

php
Text::from('hello world')->pad(20, '!', STR_PAD_RIGHT)->value();
// Would generate "hello world!!!!!!!!!"

replace ​

Replace one or many substrings in your string. It works exactly like str_replace. It offers support for case-sensitive and case-insensitive replacement.

shuffle ​

Shuffle the characters of the string around randomly.

safe ​

Remove all dangerous characters from the string. (XSS prevents among other things). This method also removes all html tags.

stripTags ​

Remove all html tags from the string.

split ​

Split the string by given separating character(s).

explode ​

Alias for split.

specialChars ​

Run a simpler version of the safe method.

entities ​

Encoded the html entities in thes string.

chunks ​

Split the string into chunks based on the given length for each chunk.

format ​

Formats a string with given parameters. Think of vsprintf when using this method.

php
Text::from('Hello %s', ['World'])->value();
// Would generate "Hello World"

truncate ​

Truncates a string to the given length. Adds whatever end string to the string. By default, the end string is ....

INFO

Your string will be truncated to not be longer than the limit you set (including the end string)

safeTruncate ​

Truncates the string just like truncate but is aware of words. It will truncate to the closest full world before adding the end string.

INFO

Your string might be a little less than your limit since word boundaries are respected.

basename ​

url ​

extension ​

br ​

nl ​

censor ​

concat ​

merge ​

with ​

substr ​

substring ​

Utilities ​

random ​

Generate a random string of given length

php
Text::from()->random(10)->value(); 
// would generate something like "gSv4G10mE0"

uuid ​

Generates a version 4 or 5 valid UUID string.

php
Text::from()->uuid(4);
Text::from()->uuid(5, 'ba36d08b-0d1c-45e6-99d2-e7efe7d51381', 'yourname');

Validators ​

isEmail ​

Checks if string is a valid email address.

isDomain ​

Checks if string is a valid domain.

isURL ​

Checks if string is valid URL.

isMacAddress ​

Checks if string is a valid mac address.

isIP ​

Checks if string is a valid IP.

isJSON ​

Checks if string is valid JSON.

WARNING

This method detects if the string is json but does not validate the json itself. In a subsequent version this will use php 8.3's json_validate method.

isPostal ​

Checks if the string is a valid Canadian postal code.

isZip ​

Checks if the string is a valid US Zip code.

startsWith ​

Checks if the string starts with the given string.

endsWith ​

Checks if the string ends with the given string.

contains ​

Checks if string is found in the initial string.

Released under the MIT License.