PHPackages                             anisimov/emoji - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. anisimov/emoji

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

anisimov/emoji
==============

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

v1.0.1(4y ago)103.9kMITPHPPHP &gt;=7.4.0

Since Oct 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/aleksey-anisimov/emoji)[ Packagist](https://packagist.org/packages/anisimov/emoji)[ Docs](https://github.com/aleksey-anisimov/emoji)[ RSS](/packages/anisimov-emoji/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (3)Used By (0)

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

[](#it-allows-to-detect-emoji-remove-emoji-encode-emoji-and-decode-emoji-in-string)

Installation
============

[](#installation)

```
composer require anisimov/emoji

```

How to use
==========

[](#how-to-use)

Encode and decode Emoji
-----------------------

[](#encode-and-decode-emoji)

### Single colon delimiter

[](#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

[](#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

[](#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
----------------------

[](#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
--------------------------

[](#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
------------------------

[](#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
==============================

[](#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 `:`

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~168 days

Total

2

Last Release

1543d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2712524?v=4)[Vyacheslav V. Anisimov](/maintainers/Anisimov)[@anisimov](https://github.com/anisimov)

---

Top Contributors

[![aleksey-anisimov](https://avatars.githubusercontent.com/u/3782720?v=4)](https://github.com/aleksey-anisimov "aleksey-anisimov (2 commits)")

---

Tags

emojiemoji-unicodeemojisencodingencodedecodedecodingemojidetect emojiremove emojiencode emojidecode emojidetecting emojiremoving emojiencoding emojidecoding emoji

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/anisimov-emoji/health.svg)

```
[![Health](https://phpackages.com/badges/anisimov-emoji/health.svg)](https://phpackages.com/packages/anisimov-emoji)
```

###  Alternatives

[hashids/hashids

Generate short, unique, non-sequential ids (like YouTube and Bitly) from numbers

5.4k52.1M317](/packages/hashids-hashids)[sqids/sqids

Generate short YouTube-looking IDs from numbers

6771.8M48](/packages/sqids-sqids)[christian-riesen/base32

Base32 encoder/decoder according to RFC 4648

13333.9M74](/packages/christian-riesen-base32)[delight-im/base64

Simple and convenient Base64 encoding and decoding for PHP

16175.4k6](/packages/delight-im-base64)[torann/hashids

Laravel package for Hashids

54343.7k](/packages/torann-hashids)[skleeschulte/base32

Base32 encoding and decoding class (RFC 4648, RFC 4648 extended hex, Crockford, z-base-32/Zooko).

17323.3k9](/packages/skleeschulte-base32)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
