petitchevalroux / homoglyph
将所有同形异义字符替换为拉丁字符等效字符,拉丁同形异义字符不会被替换
v1.0
2019-11-04 20:04 UTC
Requires (Dev)
- phpunit/phpunit: ^5
This package is auto-updated.
Last update: 2024-09-05 07:26:33 UTC
README
将所有同形异义字符替换为拉丁字符等效字符,拉丁同形异义字符不会被替换。
安装
composer require petitchevalroux/homoglyph
使用方法
替换同形异义字符
<?php echo (new \Pcr\Homoglyph())->replace('аЬсԁеһіјорѕѵѡху'));
显示
abcdehijopsvwxy
灵感和文档
数据源:http://www.unicode.org/Public/security/latest/confusables.txt
引入脚本和想法:https://github.com/nodeca/unhomoglyph
支持的同形异义字符
- 西里尔字母(大写和小写)
- 全角拉丁字母(大写和小写)
- 更多,但尚未测试(欢迎贡献)
不会被替换的拉丁同形异义字符
以下字符根据 Unicode 标准被认为是混淆的,但由于它们是有效的拉丁字符,因此在替换函数中不会被替换。
0 => O
I => l
m => rn
1 => l
全角拉丁字母
全角拉丁字母(大写和小写)将被替换为相应的字符。
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
替换
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
更新
以下脚本允许更新 characters-map.php(需要 node)
tools/update.php