[PHP]Rekurencyjna zmiana nazwy pliku |
[PHP]Rekurencyjna zmiana nazwy pliku |
11.07.2010, 01:55:05
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) |
Funkcja ma na celu wczytanie nazwy pliku, sprawdzeniu w danej lokalizacji czy plik już istnieje, jeśli tak to dodawany jest numerek (1 jeśli nie ma żadnej cyfry na końcu lub cyfra kolejna jeśli już jakaś na końcu jest), po czym zapisywana jest nowa nazwa pliku i funkcja wywołuje samą siebie dla nowej nazwy, jeśli jest wolna następuje zapis.
Nie wiem, czemu to nie działa (tworzą się pliki o nazwach test.txt, test1.txt, test2.txt i dalej nic tzn. strona się wiesza, a wysyłam plik o nazwie test.txt), a po pewnym czasie skrypt się wiesza i strona się nie wczytuje. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
11.07.2010, 03:29:26
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
Nie sprawdzałem dalej, ale kod:
$liczba zawiera w przypadku pliku test1 == 1 w przypadku test2 == 2 ale w przypadku test10 == 0 I to pewnie powoduje problem. Obrałeś złą drogę. Zrób coś takiego: test_1.txt Explode możesz zrobić po '_' i rzutować typ na integer. Dzięki temu nie zgubisz numeru pliku. Drugi problem, to to, ze nie sprawdzasz, czy plik istnieje zanim go zapiszesz (linia 20), a z rekurencją trzeba uważać - musisz zawsze ustalić punkty graniczne. Ogólnie to zamiast rekurencji, możesz tu zastosować prostą pętlę:
Aby jeszcze ograniczyć ilość wykonywanych obrotów pętli, możesz spróbować wczytać ostatnio utworzony plik (wg czasu) i z niego pobrać aktualny numerek: Czyli szkic algorytmu taki: do: 1. Wczytaj ostatnio utworzony plik 2. Inkrementuj jego stan np, o 1 while: plik istnieje 3. Utwórz nowy plik kombinacji jest wiele, a wszystko zależy od potrzeb -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
11.07.2010, 07:37:12
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) |
Dziękuję za odpowiedź, to mi pomogło.
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 20:18 |