Initial commit
This commit is contained in:
commit
7c39943d54
24
LICENSE
Normal file
24
LICENSE
Normal file
@ -0,0 +1,24 @@
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Homoglpyhs
|
||||
|
||||
Transform lookalikes into their Latin counterparts.
|
||||
|
||||
## Usage
|
||||
|
||||
The data gets turned into PHP and C++ code, which you can find in `src/`.
|
||||
|
||||
The PHP file is also available for easy inclusion via composer: `composer install sainan/homoglpyhs`
|
61
codegen.php
Normal file
61
codegen.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
$cpp = <<<EOC
|
||||
namespace Sainan
|
||||
{
|
||||
inline void transform_homoglyph(wchar_t& c)
|
||||
{
|
||||
switch(c)
|
||||
{
|
||||
EOC;
|
||||
|
||||
$php = <<<EOC
|
||||
<?php
|
||||
function transform_homoglyphs(\$str)
|
||||
{
|
||||
|
||||
EOC;
|
||||
|
||||
$latin = NULL;
|
||||
$homoglyphs = [];
|
||||
foreach(explode("\n", file_get_contents("data.txt")) as $line)
|
||||
{
|
||||
$line = rtrim($line, "\r");
|
||||
if($line === "")
|
||||
{
|
||||
if($latin !== NULL)
|
||||
{
|
||||
$latin_char = '\'';
|
||||
if(in_array($latin, ['\'', '\\']))
|
||||
{
|
||||
$latin_char .= '\\';
|
||||
}
|
||||
$latin_char .= $latin;
|
||||
$latin_char .= '\'';
|
||||
|
||||
foreach($homoglyphs as $homoglyph)
|
||||
{
|
||||
$cpp .= "\n\t\tcase L'{$homoglyph}':";
|
||||
}
|
||||
$cpp .= "\n\t\t\tc = L".$latin_char.";\n";
|
||||
$cpp .= "\t\t\tbreak;\n";
|
||||
|
||||
$php .= "\t\$str = str_replace(['".join("', '", $homoglyphs)."'], {$latin_char}, \$str);\n";
|
||||
|
||||
$latin = NULL;
|
||||
$homoglyphs = [];
|
||||
}
|
||||
}
|
||||
else if($latin === NULL)
|
||||
{
|
||||
$latin = $line;
|
||||
}
|
||||
else
|
||||
{
|
||||
array_push($homoglyphs, $line);
|
||||
}
|
||||
}
|
||||
$cpp .= "\t\t}\n\t}\n}\n";
|
||||
$php .= "\treturn \$str;\n}\n";
|
||||
|
||||
file_put_contents("src/homoglyphs.hpp", $cpp);
|
||||
file_put_contents("src/homoglyphs.php", $php);
|
12
composer.json
Normal file
12
composer.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "sainan/homoglyphs",
|
||||
"description": "Transform lookalikes into their Latin counterparts.",
|
||||
"homepage": "https://github.com/Sainan/Homoglyphs",
|
||||
"type": "library",
|
||||
"license": "Unlicense",
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/homoglyphs.php"
|
||||
]
|
||||
}
|
||||
}
|
375
data.txt
Normal file
375
data.txt
Normal file
@ -0,0 +1,375 @@
|
||||
,
|
||||
‚
|
||||
|
||||
0
|
||||
0
|
||||
|
||||
1
|
||||
1
|
||||
|
||||
2
|
||||
2
|
||||
|
||||
3
|
||||
3
|
||||
|
||||
4
|
||||
4
|
||||
|
||||
5
|
||||
5
|
||||
|
||||
6
|
||||
6
|
||||
|
||||
7
|
||||
7
|
||||
|
||||
8
|
||||
8
|
||||
|
||||
9
|
||||
9
|
||||
|
||||
A
|
||||
A
|
||||
|
||||
B
|
||||
B
|
||||
|
||||
C
|
||||
C
|
||||
|
||||
D
|
||||
D
|
||||
|
||||
E
|
||||
E
|
||||
|
||||
F
|
||||
F
|
||||
|
||||
G
|
||||
G
|
||||
|
||||
H
|
||||
H
|
||||
|
||||
I
|
||||
I
|
||||
|
||||
J
|
||||
J
|
||||
|
||||
K
|
||||
K
|
||||
|
||||
L
|
||||
L
|
||||
|
||||
M
|
||||
M
|
||||
|
||||
N
|
||||
N
|
||||
|
||||
O
|
||||
O
|
||||
|
||||
P
|
||||
P
|
||||
|
||||
Q
|
||||
Q
|
||||
|
||||
R
|
||||
R
|
||||
|
||||
S
|
||||
S
|
||||
|
||||
T
|
||||
T
|
||||
|
||||
U
|
||||
U
|
||||
|
||||
V
|
||||
V
|
||||
|
||||
W
|
||||
W
|
||||
|
||||
X
|
||||
X
|
||||
|
||||
Y
|
||||
Y
|
||||
|
||||
Z
|
||||
Z
|
||||
|
||||
a
|
||||
a
|
||||
а
|
||||
à
|
||||
á
|
||||
ạ
|
||||
ą
|
||||
|
||||
b
|
||||
b
|
||||
|
||||
c
|
||||
c
|
||||
с
|
||||
ƈ
|
||||
ċ
|
||||
|
||||
d
|
||||
d
|
||||
ԁ
|
||||
ɗ
|
||||
|
||||
e
|
||||
e
|
||||
е
|
||||
ẹ
|
||||
ė
|
||||
ė
|
||||
é
|
||||
è
|
||||
|
||||
f
|
||||
f
|
||||
|
||||
g
|
||||
g
|
||||
ġ
|
||||
|
||||
h
|
||||
h
|
||||
һ
|
||||
|
||||
i
|
||||
i
|
||||
і
|
||||
í
|
||||
ì
|
||||
ï
|
||||
|
||||
j
|
||||
j
|
||||
ј
|
||||
ʝ
|
||||
|
||||
k
|
||||
k
|
||||
κ
|
||||
|
||||
l
|
||||
l
|
||||
ӏ
|
||||
ḷ
|
||||
|
||||
m
|
||||
m
|
||||
|
||||
n
|
||||
n
|
||||
ո
|
||||
|
||||
o
|
||||
o
|
||||
о
|
||||
ο
|
||||
օ
|
||||
ȯ
|
||||
ọ
|
||||
ỏ
|
||||
ơ
|
||||
ö
|
||||
ó
|
||||
ò
|
||||
|
||||
p
|
||||
p
|
||||
р
|
||||
|
||||
q
|
||||
q
|
||||
զ
|
||||
|
||||
r
|
||||
r
|
||||
|
||||
s
|
||||
s
|
||||
ʂ
|
||||
|
||||
t
|
||||
t
|
||||
|
||||
u
|
||||
u
|
||||
υ
|
||||
ս
|
||||
ü
|
||||
ú
|
||||
ù
|
||||
|
||||
v
|
||||
v
|
||||
ν
|
||||
ѵ
|
||||
|
||||
w
|
||||
w
|
||||
|
||||
x
|
||||
x
|
||||
х
|
||||
ҳ
|
||||
|
||||
y
|
||||
y
|
||||
у
|
||||
ý
|
||||
|
||||
z
|
||||
z
|
||||
ʐ
|
||||
ż
|
||||
|
||||
:
|
||||
:
|
||||
|
||||
;
|
||||
;
|
||||
|
||||
!
|
||||
!
|
||||
|
||||
?
|
||||
?
|
||||
|
||||
´
|
||||
’
|
||||
|
||||
^
|
||||
^
|
||||
|
||||
~
|
||||
~
|
||||
|
||||
¯
|
||||
 ̄
|
||||
|
||||
_
|
||||
_
|
||||
|
||||
&
|
||||
&
|
||||
|
||||
@
|
||||
@
|
||||
|
||||
#
|
||||
#
|
||||
|
||||
%
|
||||
%
|
||||
|
||||
+
|
||||
+
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
*
|
||||
*
|
||||
|
||||
=
|
||||
=
|
||||
|
||||
(
|
||||
(
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
[
|
||||
[
|
||||
|
||||
]
|
||||
]
|
||||
|
||||
{
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
⦅
|
||||
⦅
|
||||
|
||||
⦆
|
||||
⦆
|
||||
|
||||
|
|
||||
|
|
||||
|
||||
¦
|
||||
¦
|
||||
|
||||
/
|
||||
/
|
||||
|
||||
¬
|
||||
¬
|
||||
|
||||
$
|
||||
$
|
||||
|
||||
£
|
||||
£
|
||||
|
||||
¢
|
||||
¢
|
||||
|
||||
₩
|
||||
₩
|
||||
|
||||
¥
|
||||
¥
|
||||
|
||||
\
|
||||
\
|
||||
|
||||
,
|
||||
,
|
||||
、
|
||||
|
||||
.
|
||||
.
|
||||
。
|
||||
|
||||
"
|
||||
"
|
||||
”
|
||||
|
||||
`
|
||||
`
|
||||
‘
|
||||
|
||||
<
|
||||
<
|
||||
《
|
||||
|
||||
>
|
||||
>
|
||||
》
|
||||
|
||||
'
|
||||
′
|
||||
'
|
489
src/homoglyphs.hpp
Normal file
489
src/homoglyphs.hpp
Normal file
@ -0,0 +1,489 @@
|
||||
namespace Sainan
|
||||
{
|
||||
inline void transform_homoglyph(wchar_t& c)
|
||||
{
|
||||
switch(c)
|
||||
{
|
||||
case L'‚':
|
||||
c = L',';
|
||||
break;
|
||||
|
||||
case L'0':
|
||||
c = L'0';
|
||||
break;
|
||||
|
||||
case L'1':
|
||||
c = L'1';
|
||||
break;
|
||||
|
||||
case L'2':
|
||||
c = L'2';
|
||||
break;
|
||||
|
||||
case L'3':
|
||||
c = L'3';
|
||||
break;
|
||||
|
||||
case L'4':
|
||||
c = L'4';
|
||||
break;
|
||||
|
||||
case L'5':
|
||||
c = L'5';
|
||||
break;
|
||||
|
||||
case L'6':
|
||||
c = L'6';
|
||||
break;
|
||||
|
||||
case L'7':
|
||||
c = L'7';
|
||||
break;
|
||||
|
||||
case L'8':
|
||||
c = L'8';
|
||||
break;
|
||||
|
||||
case L'9':
|
||||
c = L'9';
|
||||
break;
|
||||
|
||||
case L'A':
|
||||
c = L'A';
|
||||
break;
|
||||
|
||||
case L'B':
|
||||
c = L'B';
|
||||
break;
|
||||
|
||||
case L'C':
|
||||
c = L'C';
|
||||
break;
|
||||
|
||||
case L'D':
|
||||
c = L'D';
|
||||
break;
|
||||
|
||||
case L'E':
|
||||
c = L'E';
|
||||
break;
|
||||
|
||||
case L'F':
|
||||
c = L'F';
|
||||
break;
|
||||
|
||||
case L'G':
|
||||
c = L'G';
|
||||
break;
|
||||
|
||||
case L'H':
|
||||
c = L'H';
|
||||
break;
|
||||
|
||||
case L'I':
|
||||
c = L'I';
|
||||
break;
|
||||
|
||||
case L'J':
|
||||
c = L'J';
|
||||
break;
|
||||
|
||||
case L'K':
|
||||
c = L'K';
|
||||
break;
|
||||
|
||||
case L'L':
|
||||
c = L'L';
|
||||
break;
|
||||
|
||||
case L'M':
|
||||
c = L'M';
|
||||
break;
|
||||
|
||||
case L'N':
|
||||
c = L'N';
|
||||
break;
|
||||
|
||||
case L'O':
|
||||
c = L'O';
|
||||
break;
|
||||
|
||||
case L'P':
|
||||
c = L'P';
|
||||
break;
|
||||
|
||||
case L'Q':
|
||||
c = L'Q';
|
||||
break;
|
||||
|
||||
case L'R':
|
||||
c = L'R';
|
||||
break;
|
||||
|
||||
case L'S':
|
||||
c = L'S';
|
||||
break;
|
||||
|
||||
case L'T':
|
||||
c = L'T';
|
||||
break;
|
||||
|
||||
case L'U':
|
||||
c = L'U';
|
||||
break;
|
||||
|
||||
case L'V':
|
||||
c = L'V';
|
||||
break;
|
||||
|
||||
case L'W':
|
||||
c = L'W';
|
||||
break;
|
||||
|
||||
case L'X':
|
||||
c = L'X';
|
||||
break;
|
||||
|
||||
case L'Y':
|
||||
c = L'Y';
|
||||
break;
|
||||
|
||||
case L'Z':
|
||||
c = L'Z';
|
||||
break;
|
||||
|
||||
case L'a':
|
||||
case L'а':
|
||||
case L'à':
|
||||
case L'á':
|
||||
case L'ạ':
|
||||
case L'ą':
|
||||
c = L'a';
|
||||
break;
|
||||
|
||||
case L'b':
|
||||
c = L'b';
|
||||
break;
|
||||
|
||||
case L'c':
|
||||
case L'с':
|
||||
case L'ƈ':
|
||||
case L'ċ':
|
||||
c = L'c';
|
||||
break;
|
||||
|
||||
case L'd':
|
||||
case L'ԁ':
|
||||
case L'ɗ':
|
||||
c = L'd';
|
||||
break;
|
||||
|
||||
case L'e':
|
||||
case L'е':
|
||||
case L'ẹ':
|
||||
case L'ė':
|
||||
case L'ė':
|
||||
case L'é':
|
||||
case L'è':
|
||||
c = L'e';
|
||||
break;
|
||||
|
||||
case L'f':
|
||||
c = L'f';
|
||||
break;
|
||||
|
||||
case L'g':
|
||||
case L'ġ':
|
||||
c = L'g';
|
||||
break;
|
||||
|
||||
case L'h':
|
||||
case L'һ':
|
||||
c = L'h';
|
||||
break;
|
||||
|
||||
case L'i':
|
||||
case L'і':
|
||||
case L'í':
|
||||
case L'ì':
|
||||
case L'ï':
|
||||
c = L'i';
|
||||
break;
|
||||
|
||||
case L'j':
|
||||
case L'ј':
|
||||
case L'ʝ':
|
||||
c = L'j';
|
||||
break;
|
||||
|
||||
case L'k':
|
||||
case L'κ':
|
||||
c = L'k';
|
||||
break;
|
||||
|
||||
case L'l':
|
||||
case L'ӏ':
|
||||
case L'ḷ':
|
||||
c = L'l';
|
||||
break;
|
||||
|
||||
case L'm':
|
||||
c = L'm';
|
||||
break;
|
||||
|
||||
case L'n':
|
||||
case L'ո':
|
||||
c = L'n';
|
||||
break;
|
||||
|
||||
case L'o':
|
||||
case L'о':
|
||||
case L'ο':
|
||||
case L'օ':
|
||||
case L'ȯ':
|
||||
case L'ọ':
|
||||
case L'ỏ':
|
||||
case L'ơ':
|
||||
case L'ö':
|
||||
case L'ó':
|
||||
case L'ò':
|
||||
c = L'o';
|
||||
break;
|
||||
|
||||
case L'p':
|
||||
case L'р':
|
||||
c = L'p';
|
||||
break;
|
||||
|
||||
case L'q':
|
||||
case L'զ':
|
||||
c = L'q';
|
||||
break;
|
||||
|
||||
case L'r':
|
||||
c = L'r';
|
||||
break;
|
||||
|
||||
case L's':
|
||||
case L'ʂ':
|
||||
c = L's';
|
||||
break;
|
||||
|
||||
case L't':
|
||||
c = L't';
|
||||
break;
|
||||
|
||||
case L'u':
|
||||
case L'υ':
|
||||
case L'ս':
|
||||
case L'ü':
|
||||
case L'ú':
|
||||
case L'ù':
|
||||
c = L'u';
|
||||
break;
|
||||
|
||||
case L'v':
|
||||
case L'ν':
|
||||
case L'ѵ':
|
||||
c = L'v';
|
||||
break;
|
||||
|
||||
case L'w':
|
||||
c = L'w';
|
||||
break;
|
||||
|
||||
case L'x':
|
||||
case L'х':
|
||||
case L'ҳ':
|
||||
c = L'x';
|
||||
break;
|
||||
|
||||
case L'y':
|
||||
case L'у':
|
||||
case L'ý':
|
||||
c = L'y';
|
||||
break;
|
||||
|
||||
case L'z':
|
||||
case L'ʐ':
|
||||
case L'ż':
|
||||
c = L'z';
|
||||
break;
|
||||
|
||||
case L':':
|
||||
c = L':';
|
||||
break;
|
||||
|
||||
case L';':
|
||||
c = L';';
|
||||
break;
|
||||
|
||||
case L'!':
|
||||
c = L'!';
|
||||
break;
|
||||
|
||||
case L'?':
|
||||
c = L'?';
|
||||
break;
|
||||
|
||||
case L'’':
|
||||
c = L'´';
|
||||
break;
|
||||
|
||||
case L'^':
|
||||
c = L'^';
|
||||
break;
|
||||
|
||||
case L'~':
|
||||
c = L'~';
|
||||
break;
|
||||
|
||||
case L' ̄':
|
||||
c = L'¯';
|
||||
break;
|
||||
|
||||
case L'_':
|
||||
c = L'_';
|
||||
break;
|
||||
|
||||
case L'&':
|
||||
c = L'&';
|
||||
break;
|
||||
|
||||
case L'@':
|
||||
c = L'@';
|
||||
break;
|
||||
|
||||
case L'#':
|
||||
c = L'#';
|
||||
break;
|
||||
|
||||
case L'%':
|
||||
c = L'%';
|
||||
break;
|
||||
|
||||
case L'+':
|
||||
c = L'+';
|
||||
break;
|
||||
|
||||
case L'-':
|
||||
c = L'-';
|
||||
break;
|
||||
|
||||
case L'*':
|
||||
c = L'*';
|
||||
break;
|
||||
|
||||
case L'=':
|
||||
c = L'=';
|
||||
break;
|
||||
|
||||
case L'(':
|
||||
c = L'(';
|
||||
break;
|
||||
|
||||
case L')':
|
||||
c = L')';
|
||||
break;
|
||||
|
||||
case L'[':
|
||||
c = L'[';
|
||||
break;
|
||||
|
||||
case L']':
|
||||
c = L']';
|
||||
break;
|
||||
|
||||
case L'{':
|
||||
c = L'{';
|
||||
break;
|
||||
|
||||
case L'}':
|
||||
c = L'}';
|
||||
break;
|
||||
|
||||
case L'⦅':
|
||||
c = L'⦅';
|
||||
break;
|
||||
|
||||
case L'⦆':
|
||||
c = L'⦆';
|
||||
break;
|
||||
|
||||
case L'|':
|
||||
c = L'|';
|
||||
break;
|
||||
|
||||
case L'¦':
|
||||
c = L'¦';
|
||||
break;
|
||||
|
||||
case L'/':
|
||||
c = L'/';
|
||||
break;
|
||||
|
||||
case L'¬':
|
||||
c = L'¬';
|
||||
break;
|
||||
|
||||
case L'$':
|
||||
c = L'$';
|
||||
break;
|
||||
|
||||
case L'£':
|
||||
c = L'£';
|
||||
break;
|
||||
|
||||
case L'¢':
|
||||
c = L'¢';
|
||||
break;
|
||||
|
||||
case L'₩':
|
||||
c = L'₩';
|
||||
break;
|
||||
|
||||
case L'¥':
|
||||
c = L'¥';
|
||||
break;
|
||||
|
||||
case L'\':
|
||||
c = L'\\';
|
||||
break;
|
||||
|
||||
case L',':
|
||||
case L'、':
|
||||
c = L',';
|
||||
break;
|
||||
|
||||
case L'.':
|
||||
case L'。':
|
||||
c = L'.';
|
||||
break;
|
||||
|
||||
case L'"':
|
||||
case L'”':
|
||||
c = L'"';
|
||||
break;
|
||||
|
||||
case L'`':
|
||||
case L'‘':
|
||||
c = L'`';
|
||||
break;
|
||||
|
||||
case L'<':
|
||||
case L'《':
|
||||
c = L'<';
|
||||
break;
|
||||
|
||||
case L'>':
|
||||
case L'》':
|
||||
c = L'>';
|
||||
break;
|
||||
|
||||
case L'′':
|
||||
case L''':
|
||||
c = L'\'';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
110
src/homoglyphs.php
Normal file
110
src/homoglyphs.php
Normal file
@ -0,0 +1,110 @@
|
||||
<?php
|
||||
function transform_homoglyphs($str)
|
||||
{
|
||||
$str = str_replace(['‚'], ',', $str);
|
||||
$str = str_replace(['0'], '0', $str);
|
||||
$str = str_replace(['1'], '1', $str);
|
||||
$str = str_replace(['2'], '2', $str);
|
||||
$str = str_replace(['3'], '3', $str);
|
||||
$str = str_replace(['4'], '4', $str);
|
||||
$str = str_replace(['5'], '5', $str);
|
||||
$str = str_replace(['6'], '6', $str);
|
||||
$str = str_replace(['7'], '7', $str);
|
||||
$str = str_replace(['8'], '8', $str);
|
||||
$str = str_replace(['9'], '9', $str);
|
||||
$str = str_replace(['A'], 'A', $str);
|
||||
$str = str_replace(['B'], 'B', $str);
|
||||
$str = str_replace(['C'], 'C', $str);
|
||||
$str = str_replace(['D'], 'D', $str);
|
||||
$str = str_replace(['E'], 'E', $str);
|
||||
$str = str_replace(['F'], 'F', $str);
|
||||
$str = str_replace(['G'], 'G', $str);
|
||||
$str = str_replace(['H'], 'H', $str);
|
||||
$str = str_replace(['I'], 'I', $str);
|
||||
$str = str_replace(['J'], 'J', $str);
|
||||
$str = str_replace(['K'], 'K', $str);
|
||||
$str = str_replace(['L'], 'L', $str);
|
||||
$str = str_replace(['M'], 'M', $str);
|
||||
$str = str_replace(['N'], 'N', $str);
|
||||
$str = str_replace(['O'], 'O', $str);
|
||||
$str = str_replace(['P'], 'P', $str);
|
||||
$str = str_replace(['Q'], 'Q', $str);
|
||||
$str = str_replace(['R'], 'R', $str);
|
||||
$str = str_replace(['S'], 'S', $str);
|
||||
$str = str_replace(['T'], 'T', $str);
|
||||
$str = str_replace(['U'], 'U', $str);
|
||||
$str = str_replace(['V'], 'V', $str);
|
||||
$str = str_replace(['W'], 'W', $str);
|
||||
$str = str_replace(['X'], 'X', $str);
|
||||
$str = str_replace(['Y'], 'Y', $str);
|
||||
$str = str_replace(['Z'], 'Z', $str);
|
||||
$str = str_replace(['a', 'а', 'à', 'á', 'ạ', 'ą'], 'a', $str);
|
||||
$str = str_replace(['b'], 'b', $str);
|
||||
$str = str_replace(['c', 'с', 'ƈ', 'ċ'], 'c', $str);
|
||||
$str = str_replace(['d', 'ԁ', 'ɗ'], 'd', $str);
|
||||
$str = str_replace(['e', 'е', 'ẹ', 'ė', 'ė', 'é', 'è'], 'e', $str);
|
||||
$str = str_replace(['f'], 'f', $str);
|
||||
$str = str_replace(['g', 'ġ'], 'g', $str);
|
||||
$str = str_replace(['h', 'һ'], 'h', $str);
|
||||
$str = str_replace(['i', 'і', 'í', 'ì', 'ï'], 'i', $str);
|
||||
$str = str_replace(['j', 'ј', 'ʝ'], 'j', $str);
|
||||
$str = str_replace(['k', 'κ'], 'k', $str);
|
||||
$str = str_replace(['l', 'ӏ', 'ḷ'], 'l', $str);
|
||||
$str = str_replace(['m'], 'm', $str);
|
||||
$str = str_replace(['n', 'ո'], 'n', $str);
|
||||
$str = str_replace(['o', 'о', 'ο', 'օ', 'ȯ', 'ọ', 'ỏ', 'ơ', 'ö', 'ó', 'ò'], 'o', $str);
|
||||
$str = str_replace(['p', 'р'], 'p', $str);
|
||||
$str = str_replace(['q', 'զ'], 'q', $str);
|
||||
$str = str_replace(['r'], 'r', $str);
|
||||
$str = str_replace(['s', 'ʂ'], 's', $str);
|
||||
$str = str_replace(['t'], 't', $str);
|
||||
$str = str_replace(['u', 'υ', 'ս', 'ü', 'ú', 'ù'], 'u', $str);
|
||||
$str = str_replace(['v', 'ν', 'ѵ'], 'v', $str);
|
||||
$str = str_replace(['w'], 'w', $str);
|
||||
$str = str_replace(['x', 'х', 'ҳ'], 'x', $str);
|
||||
$str = str_replace(['y', 'у', 'ý'], 'y', $str);
|
||||
$str = str_replace(['z', 'ʐ', 'ż'], 'z', $str);
|
||||
$str = str_replace([':'], ':', $str);
|
||||
$str = str_replace([';'], ';', $str);
|
||||
$str = str_replace(['!'], '!', $str);
|
||||
$str = str_replace(['?'], '?', $str);
|
||||
$str = str_replace(['’'], '´', $str);
|
||||
$str = str_replace(['^'], '^', $str);
|
||||
$str = str_replace(['~'], '~', $str);
|
||||
$str = str_replace([' ̄'], '¯', $str);
|
||||
$str = str_replace(['_'], '_', $str);
|
||||
$str = str_replace(['&'], '&', $str);
|
||||
$str = str_replace(['@'], '@', $str);
|
||||
$str = str_replace(['#'], '#', $str);
|
||||
$str = str_replace(['%'], '%', $str);
|
||||
$str = str_replace(['+'], '+', $str);
|
||||
$str = str_replace(['-'], '-', $str);
|
||||
$str = str_replace(['*'], '*', $str);
|
||||
$str = str_replace(['='], '=', $str);
|
||||
$str = str_replace(['('], '(', $str);
|
||||
$str = str_replace([')'], ')', $str);
|
||||
$str = str_replace(['['], '[', $str);
|
||||
$str = str_replace([']'], ']', $str);
|
||||
$str = str_replace(['{'], '{', $str);
|
||||
$str = str_replace(['}'], '}', $str);
|
||||
$str = str_replace(['⦅'], '⦅', $str);
|
||||
$str = str_replace(['⦆'], '⦆', $str);
|
||||
$str = str_replace(['|'], '|', $str);
|
||||
$str = str_replace(['¦'], '¦', $str);
|
||||
$str = str_replace(['/'], '/', $str);
|
||||
$str = str_replace(['¬'], '¬', $str);
|
||||
$str = str_replace(['$'], '$', $str);
|
||||
$str = str_replace(['£'], '£', $str);
|
||||
$str = str_replace(['¢'], '¢', $str);
|
||||
$str = str_replace(['₩'], '₩', $str);
|
||||
$str = str_replace(['¥'], '¥', $str);
|
||||
$str = str_replace(['\'], '\\', $str);
|
||||
$str = str_replace([',', '、'], ',', $str);
|
||||
$str = str_replace(['.', '。'], '.', $str);
|
||||
$str = str_replace(['"', '”'], '"', $str);
|
||||
$str = str_replace(['`', '‘'], '`', $str);
|
||||
$str = str_replace(['<', '《'], '<', $str);
|
||||
$str = str_replace(['>', '》'], '>', $str);
|
||||
$str = str_replace(['′', '''], '\'', $str);
|
||||
return $str;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user