anisimov/emoji

允许检测emoji,删除emoji,对emoji进行编码和解码。

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

This package is auto-updated.

Last update: 2024-09-14 15:27:16 UTC


README

它允许检测emoji,删除emoji,对emoji进行编码和解码。

安装

composer require anisimov/emoji

如何使用

编码和解码Emoji

单个冒号分隔符

$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 😉

双冒号分隔符

$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 😉

三冒号分隔符

$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 😉

在字符串中检测emoji

$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

删除字符串中的所有emoji

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

$stringWithEmoji = '😉 some 😉 😉 😉 string 😉';

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

在字符串中查找所有emoji

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

$stringWithEmoji = '😀 some 😃 😄 string 😁 😆';

$result = $emoji->find($stringWithEmoji); // ['😀', '😃', '😄', '😁', '😆']

如何创建自定义分隔符

创建实现\Anisimov\Emoji\Delimiter\DelimiterInterface的分隔符类。

\Anisimov\Emoji\Delimiter\DelimiterInterface::getRegexp方法应返回用于查找分隔符包装emoji的正则表达式。

\Anisimov\Emoji\Delimiter\DelimiterInterface::getDelimiter方法应返回分隔符符号

例如,\Anisimov\Emoji\Delimiter\SingleColonDelimiter

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

\Anisimov\Emoji\Delimiter\SingleColonDelimiter::getDelimiter返回: