Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Faker\Provider;
4
 
5
class Internet extends Base
6
{
7
    protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com'];
8
    protected static $tld = ['com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org'];
9
 
10
    protected static $userNameFormats = [
11
        '{{lastName}}.{{firstName}}',
12
        '{{firstName}}.{{lastName}}',
13
        '{{firstName}}##',
14
        '?{{lastName}}',
15
    ];
16
    protected static $emailFormats = [
17
        '{{userName}}@{{domainName}}',
18
        '{{userName}}@{{freeEmailDomain}}',
19
    ];
20
    protected static $urlFormats = [
21
        'http://www.{{domainName}}/',
22
        'http://{{domainName}}/',
23
        'http://www.{{domainName}}/{{slug}}',
24
        'http://www.{{domainName}}/{{slug}}',
25
        'https://www.{{domainName}}/{{slug}}',
26
        'http://www.{{domainName}}/{{slug}}.html',
27
        'http://{{domainName}}/{{slug}}',
28
        'http://{{domainName}}/{{slug}}',
29
        'http://{{domainName}}/{{slug}}.html',
30
        'https://{{domainName}}/{{slug}}.html',
31
    ];
32
 
33
    /**
34
     * @see https://tools.ietf.org/html/rfc1918#section-3
35
     */
36
    protected static $localIpBlocks = [
37
        ['10.0.0.0', '10.255.255.255'],
38
        ['172.16.0.0', '172.31.255.255'],
39
        ['192.168.0.0', '192.168.255.255'],
40
    ];
41
 
42
    /**
43
     * @example 'jdoe@acme.biz'
44
     *
45
     * @return string
46
     */
47
    public function email()
48
    {
49
        $format = static::randomElement(static::$emailFormats);
50
 
51
        return $this->generator->parse($format);
52
    }
53
 
54
    /**
55
     * @example 'jdoe@example.com'
56
     *
57
     * @return string
58
     */
59
    final public function safeEmail()
60
    {
61
        return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain());
62
    }
63
 
64
    /**
65
     * @example 'jdoe@gmail.com'
66
     *
67
     * @return string
68
     */
69
    public function freeEmail()
70
    {
71
        return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain());
72
    }
73
 
74
    /**
75
     * @example 'jdoe@dawson.com'
76
     *
77
     * @return string
78
     */
79
    public function companyEmail()
80
    {
81
        return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName());
82
    }
83
 
84
    /**
85
     * @example 'gmail.com'
86
     *
87
     * @return string
88
     */
89
    public static function freeEmailDomain()
90
    {
91
        return static::randomElement(static::$freeEmailDomain);
92
    }
93
 
94
    /**
95
     * @example 'example.org'
96
     *
97
     * @return string
98
     */
99
    final public static function safeEmailDomain()
100
    {
101
        $domains = [
102
            'example.com',
103
            'example.org',
104
            'example.net',
105
        ];
106
 
107
        return static::randomElement($domains);
108
    }
109
 
110
    /**
111
     * @example 'jdoe'
112
     *
113
     * @return string
114
     */
115
    public function userName()
116
    {
117
        $format = static::randomElement(static::$userNameFormats);
118
        $username = static::bothify($this->generator->parse($format));
119
 
120
        $username = strtolower(static::transliterate($username));
121
 
122
        // check if transliterate() didn't support the language and removed all letters
123
        if (trim($username, '._') === '') {
124
            throw new \Exception('userName failed with the selected locale. Try a different locale or activate the "intl" PHP extension.');
125
        }
126
 
127
        // clean possible trailing dots from first/last names
128
        $username = str_replace('..', '.', $username);
129
        $username = rtrim($username, '.');
130
 
131
        return $username;
132
    }
133
 
134
    /**
135
     * @example 'fY4èHdZv68'
136
     *
137
     * @return string
138
     */
139
    public function password($minLength = 6, $maxLength = 20)
140
    {
141
        $pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength));
142
 
143
        return $this->asciify($pattern);
144
    }
145
 
146
    /**
147
     * @example 'tiramisu.com'
148
     *
149
     * @return string
150
     */
151
    public function domainName()
152
    {
153
        return $this->domainWord() . '.' . $this->tld();
154
    }
155
 
156
    /**
157
     * @example 'faber'
158
     *
159
     * @return string
160
     */
161
    public function domainWord()
162
    {
163
        $lastName = $this->generator->format('lastName');
164
 
165
        $lastName = strtolower(static::transliterate($lastName));
166
 
167
        // check if transliterate() didn't support the language and removed all letters
168
        if (trim($lastName, '._') === '') {
169
            throw new \Exception('domainWord failed with the selected locale. Try a different locale or activate the "intl" PHP extension.');
170
        }
171
 
172
        // clean possible trailing dot from last name
173
        $lastName = rtrim($lastName, '.');
174
 
175
        return $lastName;
176
    }
177
 
178
    /**
179
     * @example 'com'
180
     *
181
     * @return string
182
     */
183
    public function tld()
184
    {
185
        return static::randomElement(static::$tld);
186
    }
187
 
188
    /**
189
     * @example 'http://www.runolfsdottir.com/'
190
     *
191
     * @return string
192
     */
193
    public function url()
194
    {
195
        $format = static::randomElement(static::$urlFormats);
196
 
197
        return $this->generator->parse($format);
198
    }
199
 
200
    /**
201
     * @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum'
202
     *
203
     * @return string
204
     */
205
    public function slug($nbWords = 6, $variableNbWords = true)
206
    {
207
        if ($nbWords <= 0) {
208
            return '';
209
        }
210
 
211
        if ($variableNbWords) {
212
            $nbWords = (int) ($nbWords * self::numberBetween(60, 140) / 100) + 1;
213
        }
214
        $words = $this->generator->words($nbWords);
215
 
216
        return implode('-', $words);
217
    }
218
 
219
    /**
220
     * @example '237.149.115.38'
221
     *
222
     * @return string
223
     */
224
    public function ipv4()
225
    {
226
        return long2ip(Miscellaneous::boolean() ? self::numberBetween(-2147483648, -2) : self::numberBetween(16777216, 2147483647));
227
    }
228
 
229
    /**
230
     * @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1'
231
     *
232
     * @return string
233
     */
234
    public function ipv6()
235
    {
236
        $res = [];
237
 
238
        for ($i = 0; $i < 8; ++$i) {
239
            $res[] = dechex(self::numberBetween(0, 65535));
240
        }
241
 
242
        return implode(':', $res);
243
    }
244
 
245
    /**
246
     * @example '10.1.1.17'
247
     *
248
     * @return string
249
     */
250
    public static function localIpv4()
251
    {
252
        $ipBlock = self::randomElement(static::$localIpBlocks);
253
 
254
        return long2ip(static::numberBetween(ip2long($ipBlock[0]), ip2long($ipBlock[1])));
255
    }
256
 
257
    /**
258
     * @example '32:F1:39:2F:D6:18'
259
     *
260
     * @return string
261
     */
262
    public static function macAddress()
263
    {
264
        $mac = [];
265
 
266
        for ($i = 0; $i < 6; ++$i) {
267
            $mac[] = sprintf('%02X', self::numberBetween(0, 0xff));
268
        }
269
 
270
        return implode(':', $mac);
271
    }
272
 
273
    protected static function transliterate($string)
274
    {
275
        if (0 === preg_match('/[^A-Za-z0-9_.]/', $string)) {
276
            return $string;
277
        }
278
 
279
        $transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC;';
280
 
281
        if (class_exists(\Transliterator::class, false) && $transliterator = \Transliterator::create($transId)) {
282
            $transString = $transliterator->transliterate($string);
283
        } else {
284
            $transString = static::toAscii($string);
285
        }
286
 
287
        return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString);
288
    }
289
 
290
    protected static function toAscii($string)
291
    {
292
        static $arrayFrom, $arrayTo;
293
 
294
        if (empty($arrayFrom)) {
295
            $transliterationTable = [
296
                'IJ' => 'I', 'Ö' => 'O', 'Œ' => 'O', 'Ü' => 'U', 'ä' => 'a', 'æ' => 'a',
297
                'ij' => 'i', 'ö' => 'o', 'œ' => 'o', 'ü' => 'u', 'ß' => 's', 'ſ' => 's',
298
                'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A',
299
                'Æ' => 'A', 'Ā' => 'A', 'Ą' => 'A', 'Ă' => 'A', 'Ç' => 'C', 'Ć' => 'C',
300
                'Č' => 'C', 'Ĉ' => 'C', 'Ċ' => 'C', 'Ď' => 'D', 'Đ' => 'D', 'È' => 'E',
301
                'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ē' => 'E', 'Ę' => 'E', 'Ě' => 'E',
302
                'Ĕ' => 'E', 'Ė' => 'E', 'Ĝ' => 'G', 'Ğ' => 'G', 'Ġ' => 'G', 'Ģ' => 'G',
303
                'Ĥ' => 'H', 'Ħ' => 'H', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
304
                'Ī' => 'I', 'Ĩ' => 'I', 'Ĭ' => 'I', 'Į' => 'I', 'İ' => 'I', 'Ĵ' => 'J',
305
                'Ķ' => 'K', 'Ľ' => 'K', 'Ĺ' => 'K', 'Ļ' => 'K', 'Ŀ' => 'K', 'Ł' => 'L',
306
                'Ñ' => 'N', 'Ń' => 'N', 'Ň' => 'N', 'Ņ' => 'N', 'Ŋ' => 'N', 'Ò' => 'O',
307
                'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ø' => 'O', 'Ō' => 'O', 'Ő' => 'O',
308
                'Ŏ' => 'O', 'Ŕ' => 'R', 'Ř' => 'R', 'Ŗ' => 'R', 'Ś' => 'S', 'Ş' => 'S',
309
                'Ŝ' => 'S', 'Ș' => 'S', 'Š' => 'S', 'Ť' => 'T', 'Ţ' => 'T', 'Ŧ' => 'T',
310
                'Ț' => 'T', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ū' => 'U', 'Ů' => 'U',
311
                'Ű' => 'U', 'Ŭ' => 'U', 'Ũ' => 'U', 'Ų' => 'U', 'Ŵ' => 'W', 'Ŷ' => 'Y',
312
                'Ÿ' => 'Y', 'Ý' => 'Y', 'Ź' => 'Z', 'Ż' => 'Z', 'Ž' => 'Z', 'à' => 'a',
313
                'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ā' => 'a', 'ą' => 'a', 'ă' => 'a',
314
                'å' => 'a', 'ç' => 'c', 'ć' => 'c', 'č' => 'c', 'ĉ' => 'c', 'ċ' => 'c',
315
                'ď' => 'd', 'đ' => 'd', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e',
316
                'Ä“' => 'e', 'Ä™' => 'e', 'Ä›' => 'e', 'Ä•' => 'e', 'Ä—' => 'e', 'Æ’' => 'f',
317
                'ĝ' => 'g', 'ğ' => 'g', 'ġ' => 'g', 'ģ' => 'g', 'ĥ' => 'h', 'ħ' => 'h',
318
                'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ī' => 'i', 'ĩ' => 'i',
319
                'ĭ' => 'i', 'į' => 'i', 'ı' => 'i', 'ĵ' => 'j', 'ķ' => 'k', 'ĸ' => 'k',
320
                'ł' => 'l', 'ľ' => 'l', 'ĺ' => 'l', 'ļ' => 'l', 'ŀ' => 'l', 'ñ' => 'n',
321
                'ń' => 'n', 'ň' => 'n', 'ņ' => 'n', 'ʼn' => 'n', 'ŋ' => 'n', 'ò' => 'o',
322
                'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ø' => 'o', 'ō' => 'o', 'ő' => 'o',
323
                'ŏ' => 'o', 'ŕ' => 'r', 'ř' => 'r', 'ŗ' => 'r', 'ś' => 's', 'š' => 's',
324
                'ť' => 't', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ū' => 'u', 'ů' => 'u',
325
                'ű' => 'u', 'ŭ' => 'u', 'ũ' => 'u', 'ų' => 'u', 'ŵ' => 'w', 'ÿ' => 'y',
326
                'ý' => 'y', 'ŷ' => 'y', 'ż' => 'z', 'ź' => 'z', 'ž' => 'z', 'Α' => 'A',
327
                'Ά' => 'A', 'Ἀ' => 'A', 'Ἁ' => 'A', 'Ἂ' => 'A', 'Ἃ' => 'A', 'Ἄ' => 'A',
328
                'Ἅ' => 'A', 'Ἆ' => 'A', 'Ἇ' => 'A', 'ᾈ' => 'A', 'ᾉ' => 'A', 'ᾊ' => 'A',
329
                'ᾋ' => 'A', 'ᾌ' => 'A', 'ᾍ' => 'A', 'ᾎ' => 'A', 'ᾏ' => 'A', 'Ᾰ' => 'A',
330
                'Ᾱ' => 'A', 'Ὰ' => 'A', 'ᾼ' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D',
331
                'Ε' => 'E', 'Έ' => 'E', 'Ἐ' => 'E', 'Ἑ' => 'E', 'Ἒ' => 'E', 'Ἓ' => 'E',
332
                'Ἔ' => 'E', 'Ἕ' => 'E', 'Ὲ' => 'E', 'Ζ' => 'Z', 'Η' => 'I', 'Ή' => 'I',
333
                'Ἠ' => 'I', 'Ἡ' => 'I', 'Ἢ' => 'I', 'Ἣ' => 'I', 'Ἤ' => 'I', 'Ἥ' => 'I',
334
                'Ἦ' => 'I', 'Ἧ' => 'I', 'ᾘ' => 'I', 'ᾙ' => 'I', 'ᾚ' => 'I', 'ᾛ' => 'I',
335
                'ᾜ' => 'I', 'ᾝ' => 'I', 'ᾞ' => 'I', 'ᾟ' => 'I', 'Ὴ' => 'I', 'ῌ' => 'I',
336
                'Θ' => 'T', 'Ι' => 'I', 'Ί' => 'I', 'Ϊ' => 'I', 'Ἰ' => 'I', 'Ἱ' => 'I',
337
                'Ἲ' => 'I', 'Ἳ' => 'I', 'Ἴ' => 'I', 'Ἵ' => 'I', 'Ἶ' => 'I', 'Ἷ' => 'I',
338
                'Ῐ' => 'I', 'Ῑ' => 'I', 'Ὶ' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M',
339
                'Ν' => 'N', 'Ξ' => 'K', 'Ο' => 'O', 'Ό' => 'O', 'Ὀ' => 'O', 'Ὁ' => 'O',
340
                'Ὂ' => 'O', 'Ὃ' => 'O', 'Ὄ' => 'O', 'Ὅ' => 'O', 'Ὸ' => 'O', 'Π' => 'P',
341
                'Ρ' => 'R', 'Ῥ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Ύ' => 'Y',
342
                'Ϋ' => 'Y', 'Ὑ' => 'Y', 'Ὓ' => 'Y', 'Ὕ' => 'Y', 'Ὗ' => 'Y', 'Ῠ' => 'Y',
343
                'Ῡ' => 'Y', 'Ὺ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'P', 'Ω' => 'O',
344
                'Ώ' => 'O', 'Ὠ' => 'O', 'Ὡ' => 'O', 'Ὢ' => 'O', 'Ὣ' => 'O', 'Ὤ' => 'O',
345
                'Ὥ' => 'O', 'Ὦ' => 'O', 'Ὧ' => 'O', 'ᾨ' => 'O', 'ᾩ' => 'O', 'ᾪ' => 'O',
346
                'ᾫ' => 'O', 'ᾬ' => 'O', 'ᾭ' => 'O', 'ᾮ' => 'O', 'ᾯ' => 'O', 'Ὼ' => 'O',
347
                'ῼ' => 'O', 'α' => 'a', 'ά' => 'a', 'ἀ' => 'a', 'ἁ' => 'a', 'ἂ' => 'a',
348
                'ἃ' => 'a', 'ἄ' => 'a', 'ἅ' => 'a', 'ἆ' => 'a', 'ἇ' => 'a', 'ᾀ' => 'a',
349
                'ᾁ' => 'a', 'ᾂ' => 'a', 'ᾃ' => 'a', 'ᾄ' => 'a', 'ᾅ' => 'a', 'ᾆ' => 'a',
350
                'ᾇ' => 'a', 'ὰ' => 'a', 'ᾰ' => 'a', 'ᾱ' => 'a', 'ᾲ' => 'a', 'ᾳ' => 'a',
351
                'ᾴ' => 'a', 'ᾶ' => 'a', 'ᾷ' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd',
352
                'ε' => 'e', 'έ' => 'e', 'ἐ' => 'e', 'ἑ' => 'e', 'ἒ' => 'e', 'ἓ' => 'e',
353
                'ἔ' => 'e', 'ἕ' => 'e', 'ὲ' => 'e', 'ζ' => 'z', 'η' => 'i', 'ή' => 'i',
354
                'ἠ' => 'i', 'ἡ' => 'i', 'ἢ' => 'i', 'ἣ' => 'i', 'ἤ' => 'i', 'ἥ' => 'i',
355
                'ἦ' => 'i', 'ἧ' => 'i', 'ᾐ' => 'i', 'ᾑ' => 'i', 'ᾒ' => 'i', 'ᾓ' => 'i',
356
                'ᾔ' => 'i', 'ᾕ' => 'i', 'ᾖ' => 'i', 'ᾗ' => 'i', 'ὴ' => 'i', 'ῂ' => 'i',
357
                'ῃ' => 'i', 'ῄ' => 'i', 'ῆ' => 'i', 'ῇ' => 'i', 'θ' => 't', 'ι' => 'i',
358
                'ί' => 'i', 'ϊ' => 'i', 'ΐ' => 'i', 'ἰ' => 'i', 'ἱ' => 'i', 'ἲ' => 'i',
359
                'á¼³' => 'i', 'á¼´' => 'i', 'á¼µ' => 'i', 'á¼¶' => 'i', 'á¼·' => 'i', 'á½¶' => 'i',
360
                'ῐ' => 'i', 'ῑ' => 'i', 'ῒ' => 'i', 'ῖ' => 'i', 'ῗ' => 'i', 'κ' => 'k',
361
                'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => 'k', 'ο' => 'o', 'ό' => 'o',
362
                'ὀ' => 'o', 'ὁ' => 'o', 'ὂ' => 'o', 'ὃ' => 'o', 'ὄ' => 'o', 'ὅ' => 'o',
363
                'ὸ' => 'o', 'π' => 'p', 'ρ' => 'r', 'ῤ' => 'r', 'ῥ' => 'r', 'σ' => 's',
364
                'ς' => 's', 'τ' => 't', 'υ' => 'y', 'ύ' => 'y', 'ϋ' => 'y', 'ΰ' => 'y',
365
                'ὐ' => 'y', 'ὑ' => 'y', 'ὒ' => 'y', 'ὓ' => 'y', 'ὔ' => 'y', 'ὕ' => 'y',
366
                'ὖ' => 'y', 'ὗ' => 'y', 'ὺ' => 'y', 'ῠ' => 'y', 'ῡ' => 'y', 'ῢ' => 'y',
367
                'ῦ' => 'y', 'ῧ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'p', 'ω' => 'o',
368
                'ώ' => 'o', 'ὠ' => 'o', 'ὡ' => 'o', 'ὢ' => 'o', 'ὣ' => 'o', 'ὤ' => 'o',
369
                'ὥ' => 'o', 'ὦ' => 'o', 'ὧ' => 'o', 'ᾠ' => 'o', 'ᾡ' => 'o', 'ᾢ' => 'o',
370
                'ᾣ' => 'o', 'ᾤ' => 'o', 'ᾥ' => 'o', 'ᾦ' => 'o', 'ᾧ' => 'o', 'ὼ' => 'o',
371
                'ῲ' => 'o', 'ῳ' => 'o', 'ῴ' => 'o', 'ῶ' => 'o', 'ῷ' => 'o', 'А' => 'A',
372
                'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'E',
373
                'Ж' => 'Z', 'З' => 'Z', 'И' => 'I', 'Й' => 'I', 'К' => 'K', 'Л' => 'L',
374
                'М' => 'M', 'Н' => 'N', 'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S',
375
                'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'K', 'Ц' => 'T', 'Ч' => 'C',
376
                'Ш' => 'S', 'Щ' => 'S', 'Ы' => 'Y', 'Э' => 'E', 'Ю' => 'Y', 'Я' => 'Y',
377
                'а' => 'A', 'б' => 'B', 'в' => 'V', 'г' => 'G', 'д' => 'D', 'е' => 'E',
378
                'ё' => 'E', 'ж' => 'Z', 'з' => 'Z', 'и' => 'I', 'й' => 'I', 'к' => 'K',
379
                'л' => 'L', 'м' => 'M', 'н' => 'N', 'о' => 'O', 'п' => 'P', 'р' => 'R',
380
                'с' => 'S', 'т' => 'T', 'у' => 'U', 'ф' => 'F', 'х' => 'K', 'ц' => 'T',
381
                'ч' => 'C', 'ш' => 'S', 'щ' => 'S', 'ы' => 'Y', 'э' => 'E', 'ю' => 'Y',
382
                'я' => 'Y', 'ð' => 'd', 'Ð' => 'D', 'þ' => 't', 'Þ' => 'T', 'ა' => 'a',
383
                'ბ' => 'b', 'გ' => 'g', 'დ' => 'd', 'ე' => 'e', 'ვ' => 'v', 'ზ' => 'z',
384
                'თ' => 't', 'ი' => 'i', 'კ' => 'k', 'ლ' => 'l', 'მ' => 'm', 'ნ' => 'n',
385
                'ო' => 'o', 'პ' => 'p', 'ჟ' => 'z', 'რ' => 'r', 'ს' => 's', 'ტ' => 't',
386
                'უ' => 'u', 'ფ' => 'p', 'ქ' => 'k', 'ღ' => 'g', 'ყ' => 'q', 'შ' => 's',
387
                'ჩ' => 'c', 'ც' => 't', 'ძ' => 'd', 'წ' => 't', 'ჭ' => 'c', 'ხ' => 'k',
388
                'ჯ' => 'j', 'ჰ' => 'h', 'ţ' => 't', 'ʼ' => "'", '̧' => '', 'ḩ' => 'h',
389
                '‘' => "'", '’' => "'", 'ừ' => 'u', '/' => '', 'ế' => 'e', 'ả' => 'a',
390
                'ị' => 'i', 'ậ' => 'a', 'ệ' => 'e', 'ỉ' => 'i', 'ồ' => 'o', 'ề' => 'e',
391
                'ơ' => 'o', 'ạ' => 'a', 'ẵ' => 'a', 'ư' => 'u', 'ằ' => 'a', 'ầ' => 'a',
392
                'ḑ' => 'd', 'Ḩ' => 'H', 'Ḑ' => 'D', 'ș' => 's', 'ț' => 't', 'ộ' => 'o',
393
                'ắ' => 'a', 'ş' => 's', "'" => '', 'ու' => 'u', 'ա' => 'a', 'բ' => 'b',
394
                'Õ£' => 'g', 'Õ¤' => 'd', 'Õ¥' => 'e', 'Õ¦' => 'z', 'Õ§' => 'e', 'Õ¨' => 'y',
395
                'Õ©' => 't', 'Õª' => 'zh', 'Õ«' => 'i', 'Õ¬' => 'l', 'Õ­' => 'kh', 'Õ®' => 'ts',
396
                'Õ¯' => 'k', 'Õ°' => 'h', 'Õ±' => 'dz', 'Õ²' => 'gh', 'Õ³' => 'ch', 'Õ´' => 'm',
397
                'Õµ' => 'y', 'Õ¶' => 'n', 'Õ·' => 'sh', 'Õ¸' => 'o', 'Õ¹' => 'ch', 'Õº' => 'p',
398
                'Õ»' => 'j', 'Õ¼' => 'r', 'Õ½' => 's', 'Õ¾' => 'v', 'Õ¿' => 't', 'Ö€' => 'r',
399
                'ց' => 'ts', 'փ' => 'p', 'ք' => 'q', 'և' => 'ev', 'օ' => 'o', 'ֆ' => 'f',
400
            ];
401
            $arrayFrom = array_keys($transliterationTable);
402
            $arrayTo = array_values($transliterationTable);
403
        }
404
 
405
        return str_replace($arrayFrom, $arrayTo, $string);
406
    }
407
}