<?php
function remove_unicode_before_registrar($string){
$nonLatinChars = array(
'/ä|æ|ǽ/' => 'ae',
'/ö|œ/' => 'oe',
'/ü/' => 'ue',
'/Ä/' => 'Ae',
'/Ü/' => 'Ue',
'/Ö/' => 'Oe',
'/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A',
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a',
'/Б/' => 'B',
'/б/' => 'b',
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
'/ç|ć|ĉ|ċ|č/' => 'c',
'/Д/' => 'D',
'/д/' => 'd',
'/Ð|Ď|Đ|Δ/' => 'Dj',
'/ð|ď|đ|δ/' => 'dj',
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Ё|Э/' => 'E',
'/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|ё|э/' => 'e',
'/Ф/' => 'F',
'/ф/' => 'f',
'/Ĝ|Ğ|Ġ|Ģ|Γ|Г/' => 'G',
'/ĝ|ğ|ġ|ģ|γ|г/' => 'g',
'/Ĥ|Ħ/' => 'H',
'/ĥ|ħ/' => 'h',
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Й/' => 'I',
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|й/' => 'i',
'/Ĵ/' => 'J',
'/ĵ/' => 'j',
'/Ķ|Κ|К/' => 'K',
'/ķ|κ|к/' => 'k',
'/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L',
'/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l',
'/М/' => 'M',
'/м/' => 'm',
'/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N',
'/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n',
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O',
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o',
'/П/' => 'P',
'/п/' => 'p',
'/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R',
'/ŕ|ŗ|ř|ρ|р/' => 'r',
'/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S',
'/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's',
'/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T',
'/ț|ţ|ť|ŧ|т/' => 't',
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U',
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u',
'/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ/' => 'Y',
'/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ/' => 'y',
'/В/' => 'V',
'/в/' => 'v',
'/Ŵ/' => 'W',
'/ŵ/' => 'w',
'/Ź|Ż|Ž|Ζ|З/' => 'Z',
'/ź|ż|ž|ζ|з/' => 'z',
'/Æ|Ǽ/' => 'AE',
'/ß/'=> 'ss',
'/IJ/' => 'IJ',
'/ij/' => 'ij',
'/Œ/' => 'OE',
'/ƒ/' => 'f',
'/ξ/' => 'ks',
'/π/' => 'p',
'/β/' => 'v',
'/μ/' => 'm',
'/ψ/' => 'ps',
'/Ж/' => 'Zh',
'/ж/' => 'zh',
'/Х/' => 'Kh',
'/х/' => 'kh',
'/Ц/' => 'Tc',
'/ц/' => 'tc',
'/Ч/' => 'Ch',
'/ч/' => 'ch',
'/Ы/' => 'Y',
'/ы/' => 'y',
'/Ш/' => 'Sh',
'/ш/' => 'sh',
'/Щ/' => 'Shch',
'/щ/' => 'shch',
'/Ю/' => 'Iu',
'/ю/' => 'iu',
'/ю/' => 'iu',
'/Я/' => 'Ia',
'/я/' => 'ia'
);
$nonLatinFrom = array_keys($nonLatinChars);
$nonLatinTo = array_values($nonLatinChars);
$separator = '-';
$pregSeparator = preg_quote($separator, '#');
$string = trim($string);
$string = strip_tags($string);
$string = preg_replace($nonLatinFrom, $nonLatinTo, $string);
$string = trim(trim($string, $separator));
return $string;
}
$arr = [
'params' => [
'state' => 'Constanța',
'city' => 'Constanța',
],
];
array_walk($arr['params'], function(&$value) {
$value = remove_unicode_before_registrar($value); }
);
print_r($arr);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Sbojv
function name: (null)
number of ops: 11
compiled vars: !0 = $arr
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
110 0 E > ASSIGN !0, <array>
117 1 INIT_FCALL 'array_walk'
2 FETCH_DIM_W $2 !0, 'params'
3 SEND_REF $2
4 DECLARE_LAMBDA_FUNCTION '%00%7Bclosure%7D%2Fin%2FSbojv%3A117%240'
118 5 SEND_VAL ~3
6 DO_ICALL
121 7 INIT_FCALL 'print_r'
8 SEND_VAR !0
9 DO_ICALL
10 > RETURN 1
Function remove_unicode_before_registrar:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Sbojv
function name: remove_unicode_before_registrar
number of ops: 40
compiled vars: !0 = $string, !1 = $nonLatinChars, !2 = $nonLatinFrom, !3 = $nonLatinTo, !4 = $separator, !5 = $pregSeparator
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > RECV !0
5 1 ASSIGN !1, <array>
94 2 INIT_FCALL 'array_keys'
3 SEND_VAR !1
4 DO_ICALL $7
5 ASSIGN !2, $7
95 6 INIT_FCALL 'array_values'
7 SEND_VAR !1
8 DO_ICALL $9
9 ASSIGN !3, $9
97 10 ASSIGN !4, '-'
98 11 INIT_FCALL 'preg_quote'
12 SEND_VAR !4
13 SEND_VAL '%23'
14 DO_ICALL $12
15 ASSIGN !5, $12
100 16 INIT_FCALL 'trim'
17 SEND_VAR !0
18 DO_ICALL $14
19 ASSIGN !0, $14
101 20 INIT_FCALL 'strip_tags'
21 SEND_VAR !0
22 DO_ICALL $16
23 ASSIGN !0, $16
102 24 INIT_FCALL 'preg_replace'
25 SEND_VAR !2
26 SEND_VAR !3
27 SEND_VAR !0
28 DO_ICALL $18
29 ASSIGN !0, $18
104 30 INIT_FCALL 'trim'
31 INIT_FCALL 'trim'
32 SEND_VAR !0
33 SEND_VAR !4
34 DO_ICALL $20
35 SEND_VAR $20
36 DO_ICALL $21
37 ASSIGN !0, $21
106 38 > RETURN !0
107 39* > RETURN null
End of function remove_unicode_before_registrar
Function %00%7Bclosure%7D%2Fin%2FSbojv%3A117%240:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/Sbojv
function name: {closure}
number of ops: 6
compiled vars: !0 = $value
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
117 0 E > RECV !0
118 1 INIT_FCALL 'remove_unicode_before_registrar'
2 SEND_VAR !0
3 DO_FCALL 0 $1
4 ASSIGN !0, $1
5 > RETURN null
End of function %00%7Bclosure%7D%2Fin%2FSbojv%3A117%240
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
177.71 ms | 1403 KiB | 30 Q