C'est parce qu'ils ne fonctionnent pas avec unicode (caractère multi-octets). À partir de cette page http://php.net/manual/en/function.str-split.php
Une chaîne de caractères Unicode appropriée;
<?php
function str_split_unicode($str, $l = 0) {
if ($l > 0) {
$ret = array();
$len = mb_strlen($str, "UTF-8");
for ($i = 0; $i < $len; $i += $l) {
$ret[] = mb_substr($str, $i, $l, "UTF-8");
}
return $ret;
}
return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
?>
Et est ici pour str_shuffle (prise de http://php.net/manual/en/function.str-shuffle.php):
<?php
function str_shuffle_unicode($str) {
$tmp = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
shuffle($tmp);
return join("", $tmp);
}
?>
Exemple:
$str = '日本語';
$shuffled = str_shuffle_unicode($str);
$arr1 = str_split_unicode($shuffled);
Sortie: 語 本 日
Êtes-vous sûr que cela fonctionne? Y compris un exemple peut aider. –
@AmalMurali Je suis assez sûr. J'ai ajouté le remplacement str_shuffle(). Vous pouvez vérifier les pages d'origine par exemple ou simplement les essayer. – imel96
Je ne savais pas comment utiliser la première fonction s'il vous plaît expliquer comment l'utiliser – johnj