anisimov/emoji

Allows to detect emoji, remove emoji, encode emoji and decode emoji in string.

v1.0.1 2022-04-14 10:32 UTC

This package is auto-updated.

Last update: 2024-04-14 14:36:38 UTC


README

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 :