Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Losowy ciąg
Forum PHP.pl > Forum > Przedszkole
molecular
Czy zna ktoś funkcję w php która generowałaby losowy ciąg składający się z wybranych znaków (no w każdym razie z liter i cyfr) o zadanej długości??
nospor
manual to Twój przyjaciel:
http://pl.php.net/rand
są tam też przyklady odnosnie tego co szukasz
molecular
Wiem, wiem czytałem w manualu ale nie chodziło mi o generowanie liczb tylko ciągów dlatego na rand nie zwróciłem uwagi ale zrobiłem to trochę po swojemu i też działa:
  1. <?php
  2. $ciag = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  3. $wymieszany = str_shuffle($ciag);
  4. $kod = substr($wymieszany, 0, 6); 
  5.  
  6. echo $kod;
  7. ?>
nospor
Kod który przedtsawiles ma jedną wadę (jesli mozna nazwac to wadą). W wylosowanym ciągu nie powtórzy się żadna litera (co do wielkosci). Pozatym co jesli będzieez chial miec dłużsyz ciąg niż twoj zbiór znaków. Pozatym jesli chcesz mieć tylko ciąg z 6 znaków, to i tak trzeba przetasować cały twój zbiór znaków. Lepsza była metoda z mauala
molecular
Cytat(nospor @ 2005-09-08 09:33:50)
... Pozatym jesli chcesz mieć tylko ciąg z 6 znaków, to i tak trzeba przetasować cały twój zbiór znaków...

A czy do takiego przetasowania nie służy funkcja str_shuffle() questionmark.gif? smile.gif
nospor
Ta funkcja sluzy wlasnie do tego. Ale ty potrzebujesz tylko 6 znaków a tasujesz kilkadziesiąt. Chodzilo mi o wydajnosc
molecular
Aaaa no fakt :-) Więc szczerze dzięki za info - tylko że ja to robiłem tak naprawdę dla zabawy, takie logowanie na podstawie losowego kodu który wyświetla się na obrazku generowanym przez GD2 :-)
php programmer
może tak
  1. <?php
  2.  
  3. $los = rand(0,99);
  4. $ciag_znakow='';
  5. $ASCII_a = ord('a');
  6. $ASCII_Z = ord('Z');
  7. for ($i=0;$i<=$los;$i++) 
  8.  $ciag_znakow .= chr(rand($ASCII_a,$ASCII_Z))
  9.  
  10.  
  11. ?>


----edit----
Najpierw dostałaś kilka upomnień żebyś zaczął stosować bbCode.
Teraz mamy Cię katować żebyć używał odpowiedniego?
Popraw z [ code ] na [ php ].
----edit 2----
No już lepiej.
~mike_mech
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.