Trimmer provide support for string trimming to given length methods, and also trimming with words aware. Will not cut word in half.
If composer is installed globally in your OS:
composer require pawelzny/trimmer
If composer is installed locally in your project directory:
php composer.phar require pawelzny/trimmer
Use facade to access Trimmer objects or import proper class and use directly.
<?PHP
use Trimmer\Trim;
$string = "Far far away, behind the word mountains,
far from the countries Vokalia and Consonantia, there live
the blind texts. Separated they live in Bookmarksgrove right
at the coast of the Semantics, a large language ocean.";
$trim = Trim::chars($string, $length=40);
echo $trim->trim(); // Far far away, behind the word mountai...
<?PHP
use Trimmer\Trim;
$string = "Far far away, behind the word mountains,
far from the countries Vokalia and Consonantia, there live
the blind texts. Separated they live in Bookmarksgrove right
at the coast of the Semantics, a large language ocean.";
$trim = Trim::words($string, $length=40);
echo $trim->trim(); // Far far away, behind the word...
<?PHP
use Trimmer\Trim;
echo Trim::ELLIPSIS; // ...
echo Trim::EOL; // [end of line]
echo Trim::SPACE; // [white space]
echo Trim::TABULATOR; // [tab character]
echo Trim::DEFAULT_DELIMITER; // ...
CharsTrimmer: constructor(string: $string [, int: $length=null [, string: $delimiter=null]])
WordsTrimmer: constructor(string: $string [, int: $length=null [, string: $delimiter=null]])
<?PHP
use Trimmer\Trim;
$chars = Trim::chars($string, $length=30, $delimiter='');
$words = Trim::words($string, $length=30, $delimiter='');
string: trim()
Performs trimming on string and return new trimmed string
<?PHP
use Trimmer\Trim;
$string = 'Far far away, behind the word mountains';
Trim::chars($string)->trim();
Trim::words($string)->trim();
null: setLength(int: $length)
Caution!: delimiter length will be automatically substracted from trimming length.
<?PHP
use Trimmer\Trim;
$string = 'Far far away, behind the word mountains';
$trim = Trim::chars($string);
$trim->setLength(30);
null: setDelimiter(string: $delimiter)
<?PHP
use Trimmer\Trim;
$string = 'Far far away, behind the word mountains';
$trim = Trim::chars($string);
$trim->setDelimiter('[read more]');
If you do not want to use facade you can create objects directly.
<?PHP
use Trimmer\Services\WordsTrimmer;
use Trimmer\Services\CharsTrimmer;
use Trimmer\Trim;
$string = 'Far far away, behind the word mountains';
$length = 30;
$delimiter = Trim::DEFAULT_DELIMITER;
$chars = new CharsTrimmer($string, $length, $delimiter);
$newDelimiter = 'read more...';
$newLength = 40;
$chars->setDelimiter($newDelimiter);
$chars->setLength($newLength);
$chars->trim();
$words = new WordsTrimmer($string, $length, $delimiter);
$words->setDelimiter($newDelimiter);
$words->setLength($newLength);
$words->trim();