Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generacja ciągu znaków
Forum PHP.pl > Forum > Przedszkole
Hpsi
Witam potrzebuje wskazówki jak zrobic generator znaków np 5 znaków (przypadkowych) które znajdziemy na klawiaturze, mile widziana mieszanka liczb i liter
hwao
  1. <?php
  2. $template = "1234567890abcdefghijklmnopqrstuvwxyz";
  3.  
  4. function GetRandomString($length) {
  5.  
  6.  global $template;
  7.  
  8.  settype($length, "integer");
  9.  settype($rndstring, "string");
  10.  settype($a, "integer");
  11.  settype($b, "integer");
  12.  
  13.  for ($a = 0; $a <= $length; $a++) {
  14.  $b = rand(0, strlen($template) - 1);
  15.  $rndstring .= $template[$b];
  16.  }
  17.  
  18.  return $rndstring;
  19.  
  20. }
  21.  
  22. echo GetRandomString(5);
  23. ?>


Źródło: http://pl2.php.net/rand
Hpsi
wielkie dzięki winksmiley.jpg
Kicok
Po 1 to skrypt podany przez hwao wyświetli ci o 1 znak za dużo.
Po 2 jeśli chcesz mieć `ciąg znaków które znajdziemy na klawiaturze`, a nie tylko cyfry i litery to można to zrobić tak:
  1. <?php
  2.  
  3. function GetRandomString($length) 
  4. {
  5. settype($rndstring, "string");
  6.  
  7. for($a=0; $a<$length; $a++) 
  8. $rndstring .= chr(rand(33, 126));
  9.  
  10. return($rndstring);
  11. }
  12.  
  13. echo(htmlspecialchars(GetRandomString(5)));
  14.  
  15. ?>


rand(33, 126) to zakres znaków ASCII które mogą zostać wylosowane. A jeśli chcesz je wyświetlić na ekranie to trzeba użyć też htmlspecialchars() - żeby przeglądarka nie zamieniła #9<b> na tagi HTML, itp.
Hpsi
wymyslem troszke prostrzy sosob (szybyszy) wedlug mnie winksmiley.jpg
  1. <?php
  2.  
  3. substr(md5(time()), 0, 5);
  4.  
  5. ?>


chyba prostrze, czytelniejsze i co najwazniejsze szybsze .
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.