Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generacja ciągu znaków
Hpsi
post
Post #1





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  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
Go to the top of the page
+Quote Post
Hpsi
post
Post #3





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


wielkie dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Kicok 20.09.2005, 18:56:43
Go to the top of the page
+Quote Post
Hpsi
post
Post #5





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


wymyslem troszke prostrzy sosob (szybyszy) wedlug mnie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2.  
  3. substr(md5(time()), 0, 5);
  4.  
  5. ?>


chyba prostrze, czytelniejsze i co najwazniejsze szybsze .
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:08