miniaturebase / runes
PHP的低级别字符串字符分析库。
v0.1.1
2021-02-16 06:26 UTC
Requires
- php: >=7.1 || >=8.0
- ext-intl: *
Requires (Dev)
- ergebnis/composer-normalize: ^2.13
- friendsofphp/php-cs-fixer: ^2.18
- pestphp/pest: ^1.0
- phpunit/phpunit: ^9.3
- symfony/var-dumper: ^5.2
This package is auto-updated.
Last update: 2024-09-06 05:38:02 UTC
README
Runes
PHP的低级别字符串字符分析库。
有关PHP尚未处理的Unicode字符的有用信息,请参阅compart unicode文档。
特性
- 逐字符(多字节感知)分析;
- 脚本检测,区分类似字符(见IDN homograph attack);
- 字符编码检测与转换;
- 各种序列化格式;
设置
如何设置此存储库以用于您自己的项目或作为贡献者为此项目做出贡献的说明。
要求
此库没有太多要求。所有这些都与主机机器相关。
安装
使用composer和自动加载器。
composer require jordanbrauer/runes
对于贡献者
克隆存储库并安装开发工具,开始运行测试您的功能修复。
git clone https://github.com/jordanbrauer/runes.git \ && cd ./runes \ && composer install;
用法
使用库非常简单。以下是一个快速示例,让我们分析来自Elder Futhark书写系统的古老、却奇怪熟悉的字符ᛒ
!
use Rune\Rune; $rune = new Rune('ᛒ'); dump($rune->toJson());
将输出以下关于符号的数据。
{ "bidirectionalClass": "L", "binary": "111000011001101110010010", "blockCode": 35, "bytes": 1, "category": "Lo", "codepoint": "U+16D2", "combiningClass": 0, "decimal": 14785426, "encoding": "UTF-8", "glyph": "ᛒ", "hex": "e19b92", "isMirrored": false, "name": "RUNIC LETTER BERKANAN BEORC BJARKAN B", "script": "Runic", "utf16": "0x16D2", "utf32": "0x000016D2", "utf8": "0xE1 0x9B 0x92", "version": "3.0.0.0" }
动机
Unicode很棒。然而,它可能是程序员的痛苦之源。这个工具旨在通过提供一个低级/通用API来帮助减轻这种痛苦,该API允许你专注于问题,而无需陷入UTF-8及其亲缘关系的困境。
项目名称
最初,这个项目的名称是UTFH8;一个关于UTF-8编码算法和(非常强烈的)英语单词"hate"的双关语,通过使用数字八来代替字母"a-t-e",暗示每个开发者在职业生涯的某个时刻都会说 – "我恨unicode"。
现在,该项目已更名为Runes,受Go的rune类型和Elder Futhark的启发 – 听起来不那么严厉和阴险。