kr2y5i3k
(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(", ");
}
?>
kr2y5i3k
(Kr2y5i3k)
#3
No dobra zrobiłem coś takiego (patrz kod niżej) ale zapisuje tylko jedną liczbę do pliku 
<?
$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);
?>
crew1
(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
(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()