Strings

This will make living with PHP strings easier by; - providing a simple chained API to string operations - not mixing up the needle haystack stuff - allowing you to extend and add your own methods in seconds

$text = 'Something to translate';
$text = strtr($text, $translation);
$text = htmlspecialchars($text);
$text = nl2br($text);
echo $text;

Str objects allow you this;

use Solital\Core\Resource\Str\Str;

echo (new Str('Something to translate'))
    ->translate($translation)
    ->chars()
    ->nl2br();

// Or use a helper `str()`

echo str('Something to translate')
    ->translate($translation)
    ->chars()
    ->nl2br();

value()

Returns the current value of this string

$str = new Str('foo');
echo $str->value();

addCslashes()

Quote string with slashes in a C style

$str = new Str('testescape');
$str->addCslashes('acep');
echo $str->value();

addSlashes()

Quote string with slashes

$str = new Str("aa'bb");
$str->addSlashes();
echo $str->value();

chunkSplit()

Splits the string into smaller chunks

$str = new Str('foobar');
$str->chunkSplit(2, ':');
echo $str->value();

compare()

Binary safe string comparison.

  • < 0 if this string is less than target string
  • > 0 if this string is greater than target string
  • == 0 if both strings are equal
$str = new Str('my_string');
echo $str->compare('mystring');

compareInsensitive()

Binary safe case-insensitive string comparison.

  • < 0 if this string is less than target string
  • > 0 if this string is greater than target string
  • == 0 if both strings are equal
$str = new Str('my_string');
echo $str->compareInsensitive('mystring');

concat()

Appends another string to this string.

$str = new Str('foo');
$str->concat('bar');
echo $str->value();

contains()

Does current string contain a subtring?

$str = new Str('my_string');
echo $str->contains('string');

countChars()

Return information about characters used in a string.

$str = new Str('abababcabc');
$res = $str->countChars(true);

pre($res);

explode()

Splits current string by string.

$str = new Str('but_Bar_is_never_Foo');
$res = $str->explode('_');

pre($res);

implode()

Join array elements with this string.

$str = new Str('!');
$res = $str->implode(['foo', 'is', 'bar', 'sometimes']);

pre($res);

ireplace()

Case-insensitive version of Str::replace().

$str = new Str('foo=bar');
$str->ireplace(['FOO' => 'bar']);
echo $str->value();

ltrim()

Strip whitespace (or other characters) from the beginning of a string.

$str = new Str('_-_foo');
$str->ltrim('_-');
echo $str->value();

nl2br()

Converts new lines to <br /> elements.

$str = new Str(["foo\nbar" . PHP_EOL, "foo<br />\nbar<br />" . PHP_EOL]);
$str->nl2br();
echo $str->value();

pad()

Pad the string to a certain length with another string.

  • $pad_length: If the value of pad_length is negative, less than, or equal to the length of current string, no padding takes place
  • $pad_string: String to pad the current string with
  • $pad_type: Optional, can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. If $pad_type is not specified it is assumed to be STR_PAD_RIGHT
$str = new Str('foo');
$str->pad(16, '-.-;', STR_PAD_RIGHT);
echo $str->value();

position()

Find the position of the first occurrence of a substring in a string.

$str = new Str('foo is bar sometimes');
$str->position(' is ', 0);
echo $str->value();

repeat()

Repeats the string.

$str = new Str('foo');
$str->repeat(5);
echo $str->value();

replace()

Replaces the occurences of keys with their values.

$str = new Str('foo can be bar but foo does not have to');
$str->replace(['foo' => 'fOo', 'DoEs Not' => 'fail', 'to' => '2']);
echo $str->value();

reverse()

Reverses current string.

$str = new Str('knitS raW pupilS regaL');
$str->reverse();
echo $str->value();

rot13()

Perform the ROT13 transform on current string.

The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. Encoding and decoding are done by the same function, passing an encoded string as argument will return the original version.

$str = new Str('foobar');
$str->rot13();
echo $str->value();

rtrim()

Strip whitespace (or other characters) from the end.

$str = new Str('ofoooooo');
$str->rtrim('o');
echo $str->value();

shuffle()

Randomly shuffles the string.

$str = new Str('foo bar foobar pebkac fubar');
$original = $str->value();
$str->shuffle();
echo $str->value();
echo $original;

specialchars()

Convert special characters to HTML entities.

  • $decode: If true, convert special HTML entities back to characters.
$str = new Str('<p>This should <br>not be wrapped</p>');
$str->specialchars();
echo $str->value();

stripTags()

Strip HTML and PHP tags.

  • $allowable_tags: List of allowed tags.
$str = new Str('<html><div><p><br/><br></p></div></html>');
$str->stripTags();
echo $str->value();

translate()

Translate characters or replace substrings.

$str = new Str(':foo :bar');
$str->translate([':foo' => ':bar', ':bar' => ':newbar']);
echo $str->value();

trim()

Strips whitespace (or other characters) from the beginning and end of the string.

$str = new Str('offsoooooo');
$str->trim('o');
echo $str->value();

undo()

Undoes the last $steps operations.

$str = new Str(' foo is bar ');
$str->rtrim();
$str->ltrim();
$str->replace(array(' is ' => '_is_'));
$str->undo(1);
echo $str->value();

uniqueChars()

Returns a string containing all unique characters (in current string).

$str = new Str('abcabdabcd');
$str->uniqueChars();
echo $str->value();

wordCount()

Counts the number of words inside string.

  • $charlist: Optional list of additional characters which will be considered as 'word'.
$str = new Str('foo is here 3 times foo foo');
$str->wordCount();
echo $str->value();

word()

Returns the list of words inside string.

  • $charlist: Optional list of additional characters which will be considered as 'word'.
$str = new Str('foo foo bar foo');
$str->word();
echo $str->value();

What to see next?


Built with MkDocs.