48design / phmiley
Phmiley 将 UTF8 字符串中的 Unicode 表情符号替换为图形。
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: ^9.2.2 <9.3
This package is auto-updated.
Last update: 2024-09-06 17:18:59 UTC
README
Phmiley 是一个 PHP 库,可以将 UTF8 字符串中的 Unicode 表情符号替换为图形。
随着跨设备 Emoji 支持的不断发展,为什么还需要这个功能?
创建这个库的灵感来自于服务器端 PDF 创建的场景,它不支持 Emoji,并且将它们显示为难看的矩形。此外,Windows 默认不支持 Emoji 标志,因此如果您想在项目中使用基于 Unicode 的标志,则需要绕过这一点。
安装
作为 Composer 包使用
composer require 48design/phmiley
或者从 src 文件夹手动要求文件
use FortyeightDesign\Phmiley\Phmiley; require '/path/to/phmiley/src/Phmiley.php'; require '/path/to/phmiley/src/Exception.php';
Phmiley 至少需要 PHP 版本 7.1.0 才能运行。
使用方法
Phmiley 最简单的用法是
$Phmiley = new Phmiley(); $testString = "I would love to have some 🍕 right now! 🤤" $Phmiley->parse($testString);
默认情况下,这将替换所有表情符号为指向 gitcdn.xyz 上 Twitter 的 Twemoji 图形(PNG 格式,72x72)的 <img> 标签,其 href 指向 Twitter 的 Twemoji 图形。一些内联样式将确保表情符号与周围文本相比具有合适的大小。
您还可以使用一些预定义的预设来切换到 SVG 或使用 OpenMoji 图形,或使用服务器上的本地图形。您甚至可以提供自己的标签生成回调。请参阅 示例代码 和选项部分以获取所有可能的选项。
在第一次运行(针对 Unicode 版本)时,Phmiley 将自动从 Unicode 的 emoji-data.txt 获取所有表情符号的字符范围,并将其作为正则表达式缓存到 /regexdata
目录中。该包为版本 13.0 提供了缓存的正则表达式文件。通过 ->setVersion()
手动切换版本尚未彻底测试,目前不应依赖于此。
选项
预设
$Phmiley = new Phmiley([ 'preset' => 'openmoji_svg' ]); // or $Phmiley->setPreset('openmoji_svg');
可用的预设
标签生成器
如果您想移除内联样式,将它们移动到类中,在图标周围添加包装器,使用具有背景图像的 span 或任何其他您能想到的情况,您可以提供自己的标签生成回调。您可以根据需要提供可调用的形式,它将接收一个 $data
参数,它是一个关联数组,具有以下属性:emoji
- 匹配表情符号的真实 UTF-8 字符串 code
- 表情符号中使用的所有 UTF-32 十六进制代码的表示,由破折号连接;这将用作默认的 twemoji 和 openmoji 集成的基于文件名的基础
请参阅 示例代码 以获取示例用法。
许可
Phmiley 的代码本身在 MIT 许可证的条款下可用。
代码范围是从 Unicode 的 emoji-data.txt 和其他数据文件中提取的,© 2019 Unicode®,Inc。请参阅他们的 使用条款 和 许可信息。
当使用内置预设请求 Twemoji 或 OpenMoji 图形时,您必须相应地引用该使用情况
- Twemoji 版权所有 (c) 2018 Twitter,Inc. 和其他贡献者。许可证: CC-BY 4.0
- OpenMoji – 开源表情符号和图标项目。许可证: CC BY-SA 4.0