表情符号、HTML实体、简码和Unicode(表情)的全面PHP解析器。

dev-main / 1.0.x-dev 2021-03-18 20:14 UTC

This package is auto-updated.

Last update: 2024-09-19 05:38:40 UTC


README

Latest Version Total Downloads Packagist PHP Version Support Software License
Build Status Scrutinizer coverage (GitHub/BitBucket) Scrutinizer code quality (GitHub/Bitbucket) CII Best Practices Summary Psalm coverage

league/emoji是一个全面的PHP解析器和转换器,用于表情符号、HTML实体、简码和Unicode(表情);利用milesj/emojibase作为其数据源。

📦 安装与基本用法

此项目需要PHP 7.2.5或更高版本,以及mbstringzlibPHP扩展。要使用Composer安装,请运行

$ composer require league/emoji

注意:直到它实际上在packagist.com的league命名空间下发布,您需要在您的composer.json文件中添加以下内容

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/unicorn-fail/emoji.git"
        }
    ],
    "require": {
        "league/emoji": "dev-main"
    }

League\Emoji\Emoji类为将表情符号、HTML实体和简码转换为正确的Unicode字符(表情)提供了一个简单的包装器

use League\Emoji\EmojiConverter;
use League\Emoji\Emojibase\EmojibaseDatasetInterface;
use League\Emoji\Emojibase\EmojibaseShortcodeInterface;

$defaultConfiguration = [
    /** @var array<string, string> (see EmojiConverter::TYPES) */
    'convert' => [
        EmojiConverter::EMOTICON    => EmojiConverter::UNICODE,
        EmojiConverter::HTML_ENTITY => EmojiConverter::UNICODE,
        EmojiConverter::SHORTCODE   => EmojiConverter::UNICODE,
        EmojiConverter::UNICODE     => EmojiConverter::UNICODE,
    ],

    /** @var array<string, mixed> */
    'exclude' => [
        /** @var string[] */
        'shortcodes' => [],
    ],

    /** @var string */
    'locale' => 'en',

    /** @var ?bool */
    'native' => null, // Auto (null), becomes true or false depending on locale set.

    /** @var int */
    'presentation' => EmojibaseDatasetInterface::EMOJI,

    /** @var string[] */
    'preset' => EmojibaseShortcodeInterface::DEFAULT_PRESETS,
];

// Convert all applicable values to unicode emojis (default configuration).
$converter = EmojiConverter::create();
echo $converter->convert('We <3 :unicorn: :D!');
// We ❤️ 🦄 😀!

// Convert all applicable values to HTML entities.
$converter = EmojiConverter::create(['convert' => EmojiConverter::HTML_ENTITY]);
echo  $converter->convert('We <3 :unicorn: :D!');
// We \&#x2764; \&#x1F984; \&#x1F600;!

// Convert all applicable values to shortcodes.
$converter = EmojiConverter::create(['convert' => EmojiConverter::SHORTCODE]);
echo  $converter->convert('We <3 :unicorn: :D!');
// We :heart: :unicorn: :grinning:!

请注意,仅支持UTF-8和ASCII编码。如果您的内容使用不同的编码,请在运行此库之前将其转换为UTF-8。

📓 文档

@todo

⏫ 升级

@todo

🏷️ 版本控制

遵循SemVer。次要和补丁版本不应向代码库引入破坏性更改;然而,它们可能会更改解析Markdown(由于错误修复、规范更改等)产生的AST或HTML输出。因此,您可能会得到略微不同的HTML,但任何建立在库之上的自定义代码都应该仍然正常工作。

标记为@internal的任何类或方法都不建议在库外部使用,并且可能在任何时候进行破坏性更改,因此请避免使用它们。

🛠️ 维护与支持

@todo

👷‍♀️ 贡献

@todo

🧪 测试

$ composer test

或者,要包含覆盖率支持

$ composer test-coverage

👥 致谢与认可

此代码最初基于elvanto/litemoji,由Ben Sinclair维护和版权所有。目前,此项目仍然使用milesj/emojibase作为其数据源,由Miles Johnson维护和版权所有。如果没有他们的作品,这个项目将不会存在!

📄 许可证

league/emoji采用BSD-3许可证。有关更多详细信息,请参阅LICENSE文件。

🏛️ 管治

此项目主要由Mark Halliwell维护。