pawelzny/trimmer

Helps trimming string to given length rounded to whole words.

v2.0.3 2016-12-11 11:17 UTC

This package is not auto-updated.

Last update: 2024-06-22 18:47:00 UTC


README

Trimmer

Trimmer provide support for string trimming to given length methods, and also trimming with words aware. Will not cut word in half.

Installation:

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

Get started

Use facade to access Trimmer objects or import proper class and use directly.

Trim to characters length:

<?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...

Trim to words length:

<?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...

API

Builds in constants:

<?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; // ...

Facade:

Trim::chars()

CharsTrimmer: constructor(string: $string [, int: $length=null [, string: $delimiter=null]])

Trim::words()

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='');

Methods:

Trim

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();

Set new length

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);

Set Delimiter

null: setDelimiter(string: $delimiter)

<?PHP
use Trimmer\Trim;

$string = 'Far far away, behind the word mountains';
$trim = Trim::chars($string);
$trim->setDelimiter('[read more]');

Without Facade

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();