PHP - masowa zmiana nazw plików w danym katalogu

DZIAŁANIE: Akurat tutaj brak przykładu działania :-)
 

Kod:

Ewentualne Objaśnienia:

Oto bardzo prosty, ale i przydatny skrypt. Służy on do masowej jednoczesnej zmiany nazw plików w danym katalogu. Mi to przydało się bardzo do pewnej galerii zdjęć, gdzie chciałem mieć zdjęcia o jednolitych nazwach oczywiście z innymi numerami. Mogłem to zrobić choćby zaznaczając wszystkie pliki i F2 i zmiana nazwy, ale niestety Windows dodawał od siebie spacje. Nie było mi to na rękę więc napisałem prosty skrypt - oparty na poprzednim przykładzie z wyświetlaniem plików z katalogu.

Skrypt jak poprzednio odczytuje katalog tym razem przykładowo o nazwie "zdj" oraz wykonuje pętle. Wykluczamy odwołania do katalogów wyżej oraz przykładowo plik "Thumbs.db". Dalej inkrementowany jest licznik czyli zmienna $numeros oraz mamy funkcję rename :

rename ("plik_do_zmiany_nazwy", "nowa_nazwa_pliku"); - funkcja służy do zmiany nazwy pliku - warto pamiętać aby w drugim parametrze jeżeli w pierwszym podaliśmy plik ze ścieżką czyli "katalog/plik.rozszerzenie" również podać to w tej formie czyli "katalog/nowanazwa.rozszerzenie" - a nie tylko nową nazwę. Funkcja ta również, może służyć do przenoszenia pliku, na przykład :

rename("pliczek", "nowy/"); - przenosi plik "pliczek" do katalogu "nowy" ;
rename("pliczek", ".."); - przenosi plik "pliczek: do katalogu nadrzędnego ;
rename ("pliczek", "nowy/plik2"); - przenosi plik "pliczek" do katalogu "nowy" oraz zmienia jego nazwę ( pliku ) na plik2 ;

Czyli jak widać w każdym powtórzeniu pętli zostaje zmieniona nazwa danego pliku z katalogu "zdj" na nazwę "foto_nrJAKIŚNUMER.jpg"

Warto by pokombinować jak zrobić kiedy te pliki mają różne rozszerzenia - można by pisać instrukcje switch i zależnie jeśli na przykład rozszerzenie to GIF to kod do zmiany nazwy + rozszerzenie GIF itd ale jeżeli byłoby wiele plików o różnych rozszerzeniach to bez sensu prawda.

Wtedy proponowałbym odczytywać po prostu 3 ostatnie litery danego pliku ( w pętli rzecz jasna ) i zapisywać to rozszerzenie do jakiejś zmiennej i następnie zmieniać nazwę pliku na daną + odczytane rozszerzenie.

Jednak rozszerzenie może być nietypowe i zawierać więcej liter albo i mniej - wtedy już jest trudniej. Ale tylko z pozoru w następnym przykładzie pokaże jak temu zaradzić !