str_shuffle în PHP

Amestecă aleatoriu caracterele unui text.

Sintaxă
str_shuffle(string $string): string

Ce face str_shuffle

str_shuffle returnează aceleași caractere, în ordine aleatorie. Este utilă pentru jocuri (anagrame) sau exemple.

Generatorul folosit nu este sigur criptografic, deci nu o folosi pentru parole sau token-uri. Lucrează pe octeți, deci strică diacriticele.

Parametri

Parametru Descriere
$string Textul amestecat.

Ce returnează

Textul cu caracterele amestecate.

Exemple

Exemplul 1: Anagramă

Rezultatul diferă la fiecare rulare.

<?php
echo str_shuffle("programare");

Rezultat posibil (diferă la fiecare rulare)

rarpogemar

Exemplul 2: Alternativa sigură pentru un cod aleatoriu

Fiecare caracter este ales cu random_int, care este sigur. Rezultatul diferă la fiecare rulare.

<?php
$caractere = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
$cod = "";
for ($i = 0; $i < 8; $i++) {
    $cod .= $caractere[random_int(0, strlen($caractere) - 1)];
}
echo $cod;

Rezultat posibil (diferă la fiecare rulare)

K7QZ2MXA

Greșeli frecvente

  • Generezi parole cu substr(str_shuffle(...), 0, 8). Pe lângă generatorul nesigur, niciun caracter nu se poate repeta, deci parola este mai ușor de ghicit. Folosește random_int.

Comenzi înrudite

  • random_int: Generează un număr întreg aleatoriu, sigur, între două valori.
  • str_split: Împarte un text în bucăți de aceeași lungime și le pune într-un tablou.