aleksey-anisimov / emoji

Library allows to detect emoji, remove emoji, encode emoji and decode emoji in string.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

It allows to detect emoji, remove emoji, encode emoji and decode emoji in string.

Installation

composer require anisimov/emoji

How to use

Encode and decode Emoji

Single colon delimiter

$delimiter = new \Anisimov\Emoji\Delimiter\SingleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'some string πŸ˜‰';

$result = $emoji->encode($stringWithEmoji); // some string :wink:

$stringWithEncodedEmoji = 'some string :wink:';

$result = $emoji->decode($stringWithEmoji); // some string πŸ˜‰

Double colon delimiter

$delimiter = new \Anisimov\Emoji\Delimiter\DoubleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'some string πŸ˜‰';

$result = $emoji->encode($stringWithEmoji); // some string ::wink::

$stringWithEncodedEmoji = 'some string ::wink::';

$result = $emoji->decode($stringWithEmoji); // some string πŸ˜‰

Triple colon delimiter

$delimiter = new \Anisimov\Emoji\Delimiter\TripleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'some string πŸ˜‰';

$result = $emoji->encode($stringWithEmoji); // some string :::wink:::

$stringWithEncodedEmoji = 'some string :::wink:::';

$result = $emoji->decode($stringWithEmoji); // some string πŸ˜‰

Detect emoji in string

$delimiter = new \Anisimov\Emoji\Delimiter\SingleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'some string πŸ˜‰';

$result = $emoji->hasEmoji($stringWithEmoji); // true

$stringWithoutEmoji = 'some string';

$result = $emoji->hasEmoji($stringWithoutEmoji); // false

Remove all emoji in string

$delimiter = new \Anisimov\Emoji\Delimiter\SingleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'πŸ˜‰ some πŸ˜‰ πŸ˜‰ πŸ˜‰ string πŸ˜‰';

$result = $emoji->remove($stringWithEmoji); // 'some string'

Find all emoji in string

$delimiter = new \Anisimov\Emoji\Delimiter\SingleColonDelimiter();
$emoji = new \Anisimov\Emoji\Emoji($delimiter);

$stringWithEmoji = 'πŸ˜€ some πŸ˜ƒ πŸ˜„ string 😁 πŸ˜†';

$result = $emoji->find($stringWithEmoji); // ['πŸ˜€', 'πŸ˜ƒ', 'πŸ˜„', '😁', 'πŸ˜†']

How to create custom delimiter

Create delimiter class that implements \Anisimov\Emoji\Delimiter\DelimiterInterface.

\Anisimov\Emoji\Delimiter\DelimiterInterface::getRegexp method should return regex to find delimiter wrapped emoji.

\Anisimov\Emoji\Delimiter\DelimiterInterface::getDelimiter method should return delimiter symbols

For example, \Anisimov\Emoji\Delimiter\SingleColonDelimiter

\Anisimov\Emoji\Delimiter\SingleColonDelimiter::getRegexp returns /[\:]{1}[^(\:|\s)]{1,}[\:]{1}/

\Anisimov\Emoji\Delimiter\SingleColonDelimiter::getDelimiter returns :

About

Library allows to detect emoji, remove emoji, encode emoji and decode emoji in string.

License:MIT License


Languages

Language:PHP 100.0%