I have the following code which is not working with UTF-8 characters. How can I fix it?
$seed = preg_split('//u', $seed, -1, PREG_SPLIT_NO_EMPTY);
$seed = str_split('АБВГДЕЖЗ'); // and any other characters
shuffle($seed); // probably optional since array_is randomized; this may be redundant
$code = '';
foreach (array_rand($seed, 5) as $k) $md5_hash .= $seed[$k];
//We don't need a 32 character long string so we trim it down to 5
$security_code = $code;
I have tried this code:
$seed = preg_split('//u', $seed, -1, PREG_SPLIT_NO_EMPTY);
but it is still not working.
explode() is a built in function in PHP used to split a string in different strings. The explode() function splits a string based on a string delimiter, i.e. it splits the string wherever the delimiter character occurs. This functions returns an array containing the strings formed by splitting the original string.
PHP - Function split() The split() function will divide a string into various elements, the boundaries of each element based on the occurrence of pattern in string.
You must create the variable $seed
and give it a string value before you can use it as the second parameter of preg_split
:
$seed = 'АБВГДЕЖЗ';
$seed = preg_split('//u', $seed, -1, PREG_SPLIT_NO_EMPTY);
The output of print_r($seed)
will be:
Array
(
[0] => А
[1] => Б
[2] => В
[3] => Г
[4] => Д
[5] => Е
[6] => Ж
[7] => З
)
I hope the rest of your code will work just fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With