You can do something like this:
function utfOrd($c) {
return intval(array_pop(unpack('H*', $c)),16);
}
function utfChr($c) {
return pack('H*', base_convert("$c", 10, 16));
}
var_dump(array_map('utfChr', range(utfOrd('Χ'), utfOrd('Χͺ'))));
Print
array
0 => string 'Χ' (length=2)
1 => string 'Χ' (length=2)
2 => string 'Χ' (length=2)
3 => string 'Χ' (length=2)
4 => string 'Χ' (length=2)
5 => string 'Χ' (length=2)
6 => string 'Χ' (length=2)
7 => string 'Χ' (length=2)
8 => string 'Χ' (length=2)
9 => string 'Χ' (length=2)
10 => string 'Χ' (length=2)
11 => string 'Χ' (length=2)
12 => string 'Χ' (length=2)
13 => string 'Χ' (length=2)
14 => string 'Χ' (length=2)
15 => string 'Χ' (length=2)
16 => string 'Χ ' (length=2)
17 => string 'Χ‘' (length=2)
18 => string 'Χ’' (length=2)
19 => string 'Χ£' (length=2)
20 => string 'Χ€' (length=2)
21 => string 'Χ₯' (length=2)
22 => string 'Χ¦' (length=2)
23 => string 'Χ§' (length=2)
24 => string 'Χ¨' (length=2)
25 => string 'Χ©' (length=2)
26 => string 'Χͺ' (length=2)
If you need a few more characters, you can use this to create a hard-coded array or merge multiple ranges.
source
share