-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTextConverter.php
91 lines (79 loc) · 2.57 KB
/
TextConverter.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
namespace LmgZ\Utilities;
/**
* Class TextConverter
* @package LmgZ\Utilities
*/
class TextConverter
{
/**
*
*/
const ENCIRCLE_MAP = [
'A' => 'Ⓐ', 'B' => 'Ⓑ', 'C' => 'Ⓒ', 'D' => 'Ⓓ', 'E' => 'Ⓔ', 'F' => 'Ⓕ', 'G' => 'Ⓖ', 'H' => 'Ⓗ', 'I' => 'Ⓘ',
'J' => 'Ⓙ', 'K' => 'Ⓚ', 'L' => 'Ⓛ', 'M' => 'Ⓜ', 'N' => 'Ⓝ', 'O' => 'Ⓞ', 'P' => 'Ⓟ', 'Q' => 'Ⓠ', 'R' => 'Ⓡ',
'S' => 'Ⓢ', 'T' => 'Ⓣ', 'U' => 'Ⓤ', 'V' => 'Ⓥ', 'W' => 'Ⓦ', 'X' => 'Ⓧ', 'Y' => 'Ⓨ', 'Z' => 'Ⓩ',
'a' => 'ⓐ', 'b' => 'ⓑ', 'c' => 'ⓒ', 'd' => 'ⓓ', 'e' => 'ⓔ', 'f' => 'ⓕ', 'g' => 'ⓖ', 'h' => 'ⓗ', 'i' => 'ⓘ',
'j' => 'ⓙ', 'k' => 'ⓚ', 'l' => 'ⓛ', 'm' => 'ⓜ', 'n' => 'ⓝ', 'o' => 'ⓞ', 'p' => 'ⓟ', 'q' => 'ⓠ', 'r' => 'ⓡ',
's' => 'ⓢ', 't' => 'ⓣ', 'u' => 'ⓤ', 'v' => 'ⓥ', 'w' => 'ⓦ', 'x' => 'ⓧ', 'y' => 'ⓨ', 'z' => 'ⓩ',
'1' => '①', '2' => '②', '3' => '③', '4' => '④', '5' => '⑤', '6' => '⑥', '7' => '⑦', '8' => '⑧',
'9' => '⑨', '0' => '⓪'
];
/**
* @param string $text
* @return string
*/
public static function encircle(string $text)
{
$strArray = self::mb_str_split($text);
foreach ($strArray as &$char) {
foreach (self::ENCIRCLE_MAP as $letter => $encircledLetter) {
if ($char === $letter) {
$char = $encircledLetter;
break;
}
}
}
return implode('', $strArray);
}
/**
* @param string $text
* @return string
*/
public static function strike(string $text)
{
$strike = self::getLongStrikeOverlay();
$text = str_replace($strike, '', trim($text));
$strArray = self::mb_str_split($text);
return implode($strike, $strArray) . $strike;
}
/**
* @param string $str
* @return array|false|string[]
*/
public static function mb_str_split(string $str)
{
return preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY);
}
/**
* @return string
*/
public static function getLongStrikeOverlay()
{
return html_entity_decode('̶', ENT_QUOTES, 'UTF-8');
}
/**
* @return string
*/
public static function getLtoROverride()
{
return html_entity_decode('‮', ENT_QUOTES, 'UTF-8');
}
/**
* @return string
*/
public static function getRtoLOverride()
{
return html_entity_decode('‭', ENT_QUOTES, 'UTF-8');
}
}