Str Class
The Str class is a set of methods to help with the manipulation of strings.
The class also contains multibyte agnostic versions of PHP's multibyte-aware functions in category 2, as defined on this page.
They are drop-in replacements for both versions. For example, you can replace both strlen() and mb_strlen() with Str::strlen(), which will return a
multi-byte aware result based on whether or not PHP's mbstring extension is loaded.
The php.ini setting mbstring.func_overload is not supported by FuelPHP. The framework refuses to start when it is set!
increment($str, $first = 1)
The increment method allows you to append a number to the end of a string or increment that number if it already exists.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$string |
required |
The string to increment. |
$first |
1
|
The first number to increment with. |
|
Returns |
string |
Example |
$string = "filename";
Str::increment($string); // returns filename_1
$string = "filename_1";
Str::increment($string); // returns filename_2
$string = "filename";
Str::increment($string, 3); // returns filename_3
|
random($type = 'alnum', $length = 8)
The random method generates a random string based on the type given.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$type |
alnum |
The type of string to generate. Your choices are alnum, numeric, nozero, alpha, distinct, hexdec, unique, sha1 and uuid. |
$length |
16
|
The number of characters you would like the final string to be (unique, sha1 and uuid ignore this parameter). |
|
Returns |
string |
Example |
// alnum (uppercase and lowercase letters mixed with numbers)
Str::random('alnum', 16);
// Returns: SvZi9Dh3lq7zQYim
// numeric (just numbers)
Str::random('numeric', 16);
// Returns: 1045343964672481
// nozero (just numbers excluding zero)
Str::random('nozero', 16);
// Returns: 3244623373994515
// alpha (just uppercase and lowercase letters)
Str::random('alpha', 16);
// Returns: LuVAXbmxQbbWoYqz
// distinct (uppercase letters and numbers that cannot be confused)
Str::random('distinct', 16);
// Returns: R79MPKMH4KTRN35J
// hexdec (hexadecimal characters a-f, 0-9)
Str::random('hexdec', 16);
// Returns: 09c34e42f36547f8
// unique (32 character string based on md5)
Str::random('unique');
// Returns: ed4bb844a35b7a4edb7eed0d3795d328
// sha1 (40 character string based on sha1)
Str::random('sha1');
// Returns: af5c5a8cc3be9a3180205c1ed2975015cd6cf1e7
// uuid (version 4 - random)
Str::random('uuid');
// Returns: f47ac10b-58cc-4372-a567-0e02b2c3d479
|
truncate($string, $limit, $continuation = '...', $is_html = false)
The truncate method allows you to limit characters and provide a continuation string without breaking html.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$string |
required |
The string to truncate. |
$limit |
required |
The number of characters to allow in the string. |
$continuation |
'...'
|
The string to append to the end of the truncated string. |
$is_html |
false
|
If the string contains html. Setting this as true will make the method not break html. |
|
Returns |
string |
Example |
$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
Str::truncate($string, 15); // returns Lorem ipsum dol...
$string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
Str::truncate($string, 15, '...Read More'); // returns Lorem ipsum dol...Read More
|
alternator(*$args)
Returns a closure that will alternate the values you've passed to this method as arguments, unless you
call the closure with false as argument - in which case it will just return the value
without moving to the next and return the same value on the next call.
Static |
Yes |
Parameters |
Param |
Default |
Description |
*$args |
required |
As many arguments as you need to alternate |
|
Returns |
Closure |
Example |
$alt = Str::alternator('one', 'two', 'three', 'four');
echo $alt(); // outputs 'one'
echo $alt(); // outputs 'two'
echo $alt(false); // outputs 'three', but doens't move to the next as you can see in the next call
echo $alt(); // outputs 'three'
echo $alt(); // outputs 'four'
echo $alt(); // outputs 'one'
// etc...
|
tr($string, $array = array())
The tr method parse the params from given string using PHP's strtr().
Static |
Yes |
Parameters |
Param |
Type |
Default |
Description |
$string |
string |
Required |
The input string. |
$array |
array |
array()
|
params to str_replace. |
|
Returns |
string |
Example |
Str::tr('Hello :name', array('name' => 'World')); // returns 'Hello World'
|
is_json($string)
The is_json method check if a string is json encoded.
Static |
Yes |
Parameters |
Param |
Type |
Default |
Description |
$string |
string |
Required |
The input string. |
|
Returns |
bool |
Example |
Str::is_json('{"0":"An","encoded":["string"]}'); // returns true
|
is_serialized($string)
The is_serialized method check if a string is serialized.
Static |
Yes |
Parameters |
Param |
Type |
Default |
Description |
$string |
string |
Required |
The input string. |
|
Returns |
bool |
Example |
Str::is_serialized('a:2:{i:0;s:2:"An";s:7:"encoded";a:1:{i:0;s:6:"string";}}');
// returns true
|
is_html($string)
The is_html method check if a string is html.
Static |
Yes |
Parameters |
Param |
Type |
Default |
Description |
$string |
string |
Required |
The input string. |
|
Returns |
bool |
Example |
Str::is_html('Lorem ipsum <b>dolor sit amet</b>, consectetur <u>adipiscing</u> elit.');
// returns true
|
is_xml($string)
The is_xml method check if a string is a valid xml. Requires the libxml extension.
Static |
Yes |
Parameters |
Param |
Type |
Default |
Description |
$string |
string |
Required |
The input string. |
|
Returns |
bool |
Example |
Str::is_xml('<?xml version="1.0" encoding="utf-8"?><xml><foo>bar</foo></xml>');
// returns true
|
starts_with($str, $start, $ignore_case = false)
The starts_with method checks whether a string has a precific beginning.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$str |
required |
The string to check. |
$start |
required |
The beginning to check for. |
$ignore_case |
false
|
Whether to ignore the case. |
|
Returns |
bool |
Example |
$string = "Lorem ipsum dolor sit amet";
Str::starts_with($string, 'Lorem'); // returns true
Str::starts_with($string, 'lorem'); // returns false
Str::starts_with($string, 'lorem', true); // returns true
|
ends_with($str, $end, $ignore_case = false)
The ends_with method checks whether or not a string has a precific ending.
Static |
Yes |
Parameters |
Param |
Default |
Description |
$str |
required |
The string to check. |
$end |
required |
The ending to check for. |
$ignore_case |
false
|
Whether to ignore the case. |
|
Returns |
bool |
Example |
$string = "Lorem ipsum dolor sit amet";
Str::ends_with($string, 'amet'); // returns true
Str::ends_with($string, 'Amet'); // returns false
Str::ends_with($string, 'Amet', true); // returns true
|