Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Masowa zmiana nazwy plików
Forum PHP.pl > Forum > Przedszkole
Jebanany
Witam!

Głowię się nad tym, w jaki sposób stworzyć skrypt, który robił by coś w ten deseń (inaczej tego wyjaśnić się nie da):
Na początku posiadamy np. 5 plików:
1. Plik1
2. Plik2
3. Plik3
4. Plik4
5. Plik5

Po uruchomieniu danego skryptu, miesza on nam nazwy plików, tzn.:
1. Plik3 (pierwotnie Plik1)
2. Plik5 (pierwotnie Plik2)
3. Plik1 (pierwotnie Plik3)
4. Plik2 (pierwotnie Plik4)
5. Plik4 (pierwotnie Plik5)

Oczywiście plików będzie więcej, a głownym zadaniem jest po prostu zmiana nazw plików, może być również przesunięcie nazw tzn Plik1 nazywał by się potem Plik2, a Plik5 nazywał by się tak jak 1. czyli Plik1.

Myślałem o wsadzeniu wszystkich nazw do tablicy, później nadawaniu dla każdego pliku nowej nazwy z przesunięciem które sobie wybiorę, ale wtedy końcowe pliki mają nazwę początkowych, więc trzeba to zabezpieczyć. W ogóle nie wiem jak się za to chwycić, może nie da się tego zrobić akurat w PHP, patrzyłem również funkcje w TotalCommanderze, ale nie znalazłem ciekawych opcji.
luke18dg
Mi to wygląda na randomizacje.
Zapisujesz w jakimś stringu nazwy po kolei wszystkich plików. $temp=temp.':'.$nazwapliku; jeśli temp jest pusty to $temp=$nazwapliku
Wszystkie pliki zmieniasz nazwę np na "a0" i tak do ostatniego pliku.
Później $temp rozwalasz na tablicę.
I teraz począwszy od a0 randomizujesz liczbę całkowitą i sprawdzasz pętelką w dół czy liczba już jest używana, jeśli tak randomizujesz dalej jeśli nie, zmieniasz nazwę a0 na nazwę która się skrywa pod tym numerem w tablicy i przechodzisz do do następnego elementu, aż ci się skończą pliki.
Jedyną wadą tego algorytmu jest rozszerzenia.
Jebanany
No właśnie o takim czymś myślałem, postaram się coś wykombinować, ale tablica i randomowe liczby są chyba najlepszym rozwiązaniem.
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.