Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt z pliku liczb i nie losowanie ich.
Forum PHP.pl > Forum > Przedszkole
Monter08
Witam!
Ostatnio brat poprosił mnie żebym napisał mu skrypt szkolnego 'Szczęsliwego numerka'.
Napisałem panel logowania, dodałem funkcje rand() która losuje liczbe i zapisuje ją do pliku.
Lecz nie wiem jak zrobić żeby nie losowało liczby która już była wylosowana w tym miesiący i jest zapisana w danym pliku.
Kod mojego skryptu:
  1. $losuj = rand(1, 36);
  2. echo $losuj;
  3. $plik="numer.php";
  4. $fp=fopen($plik, "w");
  5. flock($fp, 2);
  6. fwrite($fp, $losuj);
  7. flock($fp, 3);
  8. fclose($fp);

Bardzo bym prosił o pomoc, mówie dorazu że zabawe z php zacząłem 2tyg temu.
nospor
Cytat
mówie dorazu że zabawe z php zacząłem 2tyg temu.
A zabawe z czytaniem kiedy rozpocząłes? Przenosze, bo obiektówka to to nie jest...
Monter08
Oj sorki nie zauważyłem że tutaj wsadzam.
Noidea
Dopisuj sobie wylosowane numery do pliku o nazwie 2010-09.txt (gdzie 2010 i 09 to odpowiednio aktualny rok i miesiąc - przyda się funkcja date)

Numery oddzielaj przecinkami, spacjami, enterami (ogólnie czymkolwiek), żeby łatwo je było odczytać.

Odczytywanie i sprawdzanie czy numer wystąpił to file_get_contents, explode i in_array
Monter08
Próbuje i próbuje i nadal mi nie wychodzi. Rozumiem że mam załadować plik, stworzyć tablice i rozdzielić liczbę od liczby.
  1. $file = file_get_contents('numerki.txt');
  2. $ex = explode("," $file);
  3. $arry = in arry('$ex');
  4.  
  5.  
  6. echo $ex;

Co robię źle ? nie jestem pwien co do $arry.
Ulysess
robisz funkcje losującą , następnie robisz
  1. if(in_array($ex, $wylosowana liczba))
  2. {
  3. wywołanie znów funkcji losującej
  4. }
  5. else
  6. {
  7. dodanie do pliku liczby
  8. }
Monter08
Dziwne.. Napisalem takie coś i jakby nie chciało go wczytać, jak napisze na końcu echo dew; to go nie pokaże..
  1. <php
  2. $losuj = rand(1, 36);
  3. $file = file_get_contents('numerki.txt');
  4. $ex = explode("," $file);
  5. $arry = in arry('$ex');
  6. if(in_array($ex, $losuj))
  7. {
  8. $losuj;
  9. }
  10. else
  11. {
  12. $plikk="numerki.txt";
  13. $fpd=fopen($plikk, "a+");
  14. flock($fpd, 2);
  15. fwrite($fpd, $losuj);
  16. fwrite($fpd, "\n");
  17. flock($fpd, 3);
  18. fclose($fpd);
  19. }


Daiquiri
if(in_array($losuj, $ex)) a nie odwrotnie, nie rozumiem też co chcesz zdziałać w 5 linijce.
Monter08
Głupia literówka w <?php ... Teraz wywala mi
  1. Parse error: syntax error, unexpected T_VARIABLE in D:\David\Programy\WebServ\httpd\ff.php on line 4

  1. $ex = explode("," $file);
Co jest źle w tej linice ?
Daiquiri
Nie masz przecinka między "," a $file. Gdybyś trochę bardziej zwracał uwagę na swój kod, wyłapałbyś te błędy.
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.