ivnkara / telegram-entities-decoder
PHP的Telegram实体解码器
v0.0.3
2023-11-07 12:42 UTC
Requires
- php: >=7.0.0
- ext-dom: *
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-09-07 14:46:05 UTC
README
此类从Telegram机器人的消息(粗体、斜体等)中解码样式实体,在文本中带有内联实体,尽可能地复制(如果可能)消息最初发送到机器人时的确切样式。所有这些工作都是必要的,因为Telegram返回的是UTF-16代码单元的实体偏移量和长度,这在PHP中很难正确解码
兼容性
PHP >= 7.0
特性
- 解码文本消息和附件标题中的实体
- 支持所有Telegram解析模式(Markdown、HTML和MarkdownV2)。HTML的熵更高,但它是最简单、最好的选择,因此推荐使用。
- 支持文本字段中的emoji
- 易于使用
注意:Markdown解析模式已弃用,不再更新,因此不支持所有实体。请使用MarkdownV2或HTML。
待办事项
管理异常和错误输入找到一种更简单的方法来计算emoji长度,而不使用正则表达式或任何需要从emoji数据库更新的其他方法。- 从右到左书写的兼容性
示例用法
$entity_decoder = new EntityDecoder('HTML');
$decoded_text = $entity_decoder->decode($message);
查看demo文件夹以获取完整示例
Composer
composer require lucadevelop/telegram-entities-decoder
使用方法
require 'vendor/autoload.php';
use lucadevelop\TelegramEntitiesDecoder\EntityDecoder;
[...]
$entity_decoder = new EntityDecoder('HTML');
$decoded_text = $entity_decoder->decode($message);
致谢
- Telegram文档:https://core.telegram.org/bots/api#formatting-options
- 灵感来源:php-telegram-bot/core#544 (评论)
emoji检测(带有一些自定义)来自:https://github.com/aaronpk/emoji-detector-php