Renvoie des octets aléatoires à partir d'une chaîne

# Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Renvoie des octets aléatoires à partir d'une chaîne

### Description

public function Random\Randomizer::getBytesFromString(string `$string`, int `$length`): string

Génère une chaîne contenant des octets aléatoires uniformément sélectionnés de la `string` d'entrée avec la `length` demandée.

La chance pour un octet d'être sélectionné est proportionnelle à sa part de la `string` d'entrée. Si chaque octet se produit le même nombre de fois, chaque octet a la même probabilité d'être sélectionné.

### Liste de paramètres

`string`

  La chaîne de caractères d'entrée à partir de laquelle les octets retournés sont sélectionnés.

`length`

  La longueur de la chaîne aléatoire chaîne de caractères qui doit être retournée en octets; doit être `1` ou plus.

### Valeurs de retour

Une chaîne de caractères contenant le nombre demandé d'octets aléatoires pris dans l'entrée `string`.

### Erreurs / Exceptions

- Si `string` est vide, une ValueError sera lancée.
- Si la valeur de `length` est inférieure à `1`, une ValueError sera lancée.
- Tout Throwables lancé par la méthode Random\Engine::generate() du `Random\Randomizer::$engine` sous-jacent.

### Exemples

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

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

    printf(
        "%s.example.com",
        $randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
    );
    ?>

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

    3zsw04eiubcf82jd.example.com

Exemple #2 Générer un code aléatoire pour l'authentification multi-facteurs

    <?php
    // Le moteur Secure est le moteur par défaut, mais nous le rendons explicite, car
    // les codes multi-facteurs sont sensibles à la sécurité.
    $randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

    echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
    ?>

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

    11551-80418-27047-42075

Exemple #3 Sélectionner à partir d'une chaîne avec une distribution non uniforme

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

    echo $randomizer->getBytesFromString('aaaaabcdef', 20);
    ?>

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

    fddacbeaaeaaacaaaaca

### Voir aussi

- Random\Randomizer::getBytes() - Renvoie des octets aléatoires

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open