Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowy kod
Forum PHP.pl > Forum > Przedszkole
vtuner
jak zrobic aby co wejscie na strone inny kod się wyswietlal tzn losowy smile.gif
ghostrider
nie bardzo wiadomo o co ci chodzi, ale kiedys napisałem taka func.

  1. <?php
  2. function str_rand( $length=32 ) {
  3. $l = ($length > 32) ? 32 : $length;
  4. $str = md5(rand(0,mktime()));
  5. $c = 32 - $length;
  6. $s = rand(0, $c);
  7. return substr($str, $s, $l);
  8. }
  9. ?>
kornelcio
  1. <?php
  2.  
  3. function gen_string($long = 8){
  4.     $arr[0] = range(0, 9);
  5.     $arr[1] = range('a', 'z');
  6.     $array = array_merge($arr[0], $arr[1]);
  7.     shuffle($array);
  8. $string = '';
  9.     for ($i = 0; $i < $long; $i++){
  10.         $string .= $array[$i];
  11.     }
  12.     return $string;
  13. }
  14.  
  15. ?>


EDIT: spóźniłem się biggrin.gif
vtuner
nie juz wiem wystarczy uzyc rand()
tylko nie wiem jak zrobic zeby wyswietlam minimum 4 cyfry
kornelcio
przy mojej funkcji (może funkcja ghostrider'a jeste lepsza, nie wiem) wywołujesz ją: gen_string(10) - podajesz jeden parametr, czyli długość stringu, ale każda litera może zostać użyta tylko raz, czyli nie może być stringu aa :]
shpyo
Nie można by tutaj wykorzystać unikalnego numeru sesji?
Przecież odwiedzający stronę dostaje swój unikalny 32-znakowy ID smile.gif

Po co się bawić w generowanie jakiś tam stringów, skoro mogą się powtórzyć?
ghostrider
można użyć identyfikatora sesji, czemu nie
mozna też tak:

  1. <?php
  2. $str = uniqid(md5(rand()));
  3. ?>


i też rozwiązanie

  1. <?php
  2. while (loop(5)) {
  3. $tmp[] = uniqid(md5(rand()));
  4. }
  5. $un = array_unique($tmp);
  6. print count($tmp) . "|" . count($un) . "n";
  7. ?>


w ciagu 5 sekund wygenerowałem 74205 unikalnych identyfikatorów, żaden sie nie powtórzył. (loop() to funkcja której uzywam zeby wykonywać skrypt przez dany okres czasu, a nie okresloną ilośc razy, konieczna przy okreslaniu wydajności)
dtb
ale kombinujeie, nie wystarczy tak ?:

  1. <?php
  2. $code = array ('text1', 'text2', 'text3');
  3. echo $code[rand (0, sizeof ($code)-1)];
  4. ?>


natomiast jeżeli chcesz aby wykonało losowy kod php, to użyj eval() zamiast echo
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.