[PHP] Zapis wylosowanych liczb do pliku


(Kr2y5i3k) #1

Witajcie! Mam taki problem: jak zapisać wylosowane liczby przez skrypt do pliku n.txt? Tak wygląda kod losujący losowe liczby z pewnego przedziału.

<?

$liczby=array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15');

shuffle($liczby

?>

Wylosowane numery to:

<?php

for ( $i = 0; $i < 5; $i++ )

{

echo $liczby[$i] ;

echo(", ");

}

?>

(Krzkaczor) #2

Proszę:

http://programowanie.celary.net/operacj ... w_php.html

A co do losowania to masz rand();

http://www.google.pl/search?hl=pl&clien ... Szukaj&lr=


(Kr2y5i3k) #3

No dobra zrobiłem coś takiego (patrz kod niżej) ale zapisuje tylko jedną liczbę do pliku :frowning:

<?

$liczby=array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','30','31','32','33','34','35','36','37','38');

shuffle($liczby)

?>

Szczesliwe numerki:

<?php

  $nazwa_pliku = 'n.txt';

for ( $i = 0; $i < 5; $i++ )

{

echo $liczby[$i] ;

echo(", ");

}

  $tekst = "$liczby[$i] \n";


   if (!$wskaznik_pliku = fopen($nazwa_pliku, 'a+')) {

          echo "Nie mogę otworzyć pliku ($nazwa_pliku)";


           exit;

     }

   if (fwrite($wskaznik_pliku, $tekst) === FALSE) {

        echo "Nie mogę zapisać do pliku ($nazwa_pliku)";


         exit;

     }

  echo "zapisano: \"$tekst\" do pliku ($nazwa_pliku)";


fclose($wskaznik_pliku);


?>

(L337 Crew) #4
<?php=array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','30','31','32','33','34','35','36','37','38');shuffle($liczby);?Szczesliwe numerki:

(adpawl) #5

Bo do zapisu podajesz tylko jeden element tablicy ...a nie 5!

Zobacz

<?

$nazwa_pliku = 'n.txt';


function losuj($num,$od,$do){

$liczby=range($od,$do); //tworzy tablicę o zakresie wartosci X-Y

shuffle($liczby);

for($i=0; $i<$num-1; $i++){ $wynik.=$liczby[$i].', '; } $wynik.=$liczby[$num-1];

return $wynik;

}


$tekst=losuj(5,1,38)."\n"; //pobranie wyników losowania


echo 'Szczesliwe numerki: '.$tekst.'
';

   if (!$fp = fopen($nazwa_pliku, 'a+')) {

          echo 'Nie mogę otworzyć pliku ('.$nazwa_pliku.')';

          exit;

     }

   if (fwrite($fp, $tekst) === FALSE) {

        echo 'Nie mogę zapisać do pliku ('.$nazwa_pliku.')';

        exit;

     }

  echo 'zapisano: "'.$tekst.'" do pliku ('.$nazwa_pliku.')';

fclose($fp);

?>

Dobre pytanie ...nie zwróciłem uwagi. Powód - range() tworzy tablicę asocjacyjną, a array_rand takich nie trawi.

Lepiej jest faktycznie użyć shuffle()