PHP Conference Nagoya 2025

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytesRenvoie une permutation par octet d'une chaîne de caractères

Description

public Random\Randomizer::shuffleBytes(string $bytes): string

Renvoie une permutation uniformément sélectionnée des bytes d'entrée.

Chaque permutation possible des bytes d'entrée est également probable d'être retournée.

Liste de paramètres

bytes

La chaîne de caractères dont les octets sont mélangés.

La chaîne de caractères d'entrée ne sera pas modifiée.

Valeurs de retour

Une permutation des octets de bytes.

Erreurs / Exceptions

Exemples

Exemple #1 Exemple de Random\Randomizer::shuffleBytes()

<?php
$r
= new \Random\Randomizer();

// Mélanger les octets dans une chaîne :
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

« ga rHs!PPiet»

Exemple #2 Mélange par octet des caractères Unicode

<?php
$r
= new \Random\Randomizer();

$unicode = "🍎, 🥝, 🍌, 🍑, 🍇";
$shuffled = $r->shuffleBytes( $unicode );

// Le mélange par octet des caractères non-ASCII les détruit,
// ce qui entraîne des séquences invalides (indiquées par le caractère
// de remplacement Unicode) ou même l'apparition de caractères
// entièrement différents dans la sortie.
echo "Original: ", $unicode, "\n";
echo
"Shuffled: «", $shuffled, "»\n";
echo
"Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Original: 🍎, 🥝, 🍌, 🍑, 🍇
Shuffled: «� ��,�����🍟,� �� �, �,��»
Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d
add a note

User Contributed Notes 1 note

up
1
okerem@github
1 year ago
For a unicode-safe shuffling;

<?php
$r
= new \Random\Randomizer();
$s = join($r->shuffleArray(mb_str_split($string)));
To Top