petitchevalroux/homoglyph

将所有同形异义字符替换为拉丁字符等效字符,拉丁同形异义字符不会被替换

v1.0 2019-11-04 20:04 UTC

This package is auto-updated.

Last update: 2024-09-05 07:26:33 UTC


README

Build Status

将所有同形异义字符替换为拉丁字符等效字符,拉丁同形异义字符不会被替换。

安装

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