Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt tworzacy plik o 1 wiekszy
Forum PHP.pl > Forum > Przedszkole
Korpek
Witam!
Zdecydowalem, ze napisze tutaj, bo mecze sie z tym skryptem juz 2 dzien i nic mi nie wychodzi.
Potrzenuje skryptu, ktory najpierw tworzy plik 1.txt(albo sam go moge recznie utworzyc), a potem jesli znajdzie 1.txt to tworzy 2.txt, jesli znajdzie 2.txt to tworzy 3.txt... i tak dalej w nieskonczonosc...
Chcilabym tez skrypt ktory odczytuje liczbe i wyswietla o 1 wieksza(cos jak licznik)
Z gory dziekuje, pozdrawim, i prosze o wyrozumialosc
biggrin.gif
Korpek
Potrzebowalbym skryptu, ktory jezeli znajdzie plik 1.txt to tworzy 2.txt i zapisuje do niego dane... tak samo potem
(Nie edytowalem poprzedniego postu, bo nie jestem zalogowany sad.gif )
zbig13
Słyszałeś może o pętli for" title="Zobacz w manualu php" target="_manual ?

  1. <?php
  2.  
  3. $liczba = 20; // Liczba plików, które mają zostać utworzone.
  4.  
  5. for ($i=1; $i<=$liczba; $i++) {
  6.  
  7. $nazwa = $i . ".txt"; // Nazwa pliku.
  8.  
  9. if (!file_exists($nazwa)) {
  10. $plik = fopen($nazwa, "w");
  11. $dane = "Dane do zapisu w pliku";
  12. fputs ($plik, $dane);
  13. fclose ($plik);
  14. }
  15.  
  16. }
  17.  
  18. ?>


Cytat
Chcilabym tez skrypt ktory odczytuje liczbe i wyswietla o 1 wieksza(cos jak licznik)

A co za problem?
  1. <?php
  2.  
  3. $liczba = 2;
  4. echo $liczba++;
  5.  
  6. ?>


Chyba, że chcesz odczytać liczbę z pliku, to wtedy:
  1. <?php
  2.  
  3. $plik = fopen("nazwa.txt", "r");
  4. $liczba = fread($plik, filesize("nazwa.txt"));
  5. $liczba++;
  6. echo $liczba;
  7.  
  8. ?>
Korpek
Slyszlem, o petli for, ale chodzi mi o to, zeby nie tworzylo naraz 20 pliko, tylko po 1.
Dzieki za checi, ale taki skrypt sam napisalem winksmiley.jpg
zbig13
Aha no to możesz zrobić tak:
  1. <?php
  2.  
  3. $katalog = opendir ("katalog/"); // Otworzenie katalogu z plikami.
  4. $liczba = 0; // Liczba plików w katalogu.
  5.  
  6. while ($plik = readdir($katalog)) { // Odczytanie zawartości katalogu.
  7. if ($plik != '.' && $plik != '..') {
  8. $liczba++; // Uaktualnienie liczby plików.
  9. }
  10. }
  11.  
  12. if (file_exists($liczba . ".txt")) { // Sprawdzenie istnienia ostatniego pliku w katalogu.
  13. $liczba++; // Zwiększenie liczby plików o 1. (następny plik będzie miał w nazwie liczbe o 1 większą od liczby wszystkich 
    plików.
  14. $plik = fopen($nazwa, "w"); // Utworzenie pliku.
  15.  $dane = "Dane do zapisu w pliku";
  16.  fputs ($plik, $dane); // Zapisanie danych do pliku.
  17.  fclose ($plik); // Zamknięcie pliku.
  18. }
  19.  
  20. ?>


Wszystko opisałem w komentarzach. Mam nadzieję, że teraz Cię dobrze zrozumiałem tongue.gif

PS. Pisałem to z głowy więc nie wiem czy działa.
Guest
Wielkie dzieki! biggrin.gif biggrin.gif
Wlasnie o to mi chodzilo!
Pozdrawiam i jeszcze raz dziekuje!
Guest
Co w tym skrypcie jest zle??

  1. <?php
  2. $plik = fopen("nazwa.txt", "r");
  3. $liczba = fread($plik, filesize("nazwa.txt"));
  4. $liczba++;
  5. echo $liczba;
  6. unlink("nazwa.txt");
  7. fopen("nazwa.txt", "w+");
  8. $file = fopen("nazwa.txt", "w+");
  9. fwrite($plik, $liczba);
  10. fclose($file);
  11. ?>


Na stronie wyswietla liczbe 2, ale w pliku nadal jest 1... Probowalem bez
unlink("nazwa.txt"); ale to samo sad.gif. W pliku nazwa.txt jest tylko liczba 1.

---

tiraeth
zbig13
1. Umieszczaj kod php w tagach [ php ] [ /php ]
2. Po co kasować plik i tworzyć go od nowa? Lepiej wykorzystywać ten sam plik.
3. 2 razy otwierasz ten sam plik, w trybie "w+". Po co?
3. Dlaczego otwierasz plik i zachowujesz go w zmiennej $file, a zapisując liczbę używasz zmiennej $plik.
Ogólnie powinno być tak:
  1. <?php
  2.  
  3. $plik = fopen("nazwa.txt", "r");
  4. $liczba = fread($plik, filesize("nazwa.txt"));
  5. $liczba++;
  6. echo $liczba;
  7. fclose ($plik);
  8.  
  9. $file = fopen("nazwa.txt", "w+");
  10. fwrite($file, $liczba);
  11. fclose($file);
  12.  
  13. ?>
yavaho
  1. <?php
  2. $nazwa_pliku=(time().'.txt');
  3. ?>
Nie bedzie to nastepna kolejna liczba, ale bedzie to liczba wyzsza od poprzedniej. Dla potrzeb posortowania plikow i nadania im unikalnych nazw jest to wystarczajace, a w dodatku z nazwy pliku mozna odczytac dokladny czas jego utworzenia.
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.