Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana nazwy katalogu
Forum PHP.pl > Forum > PHP
BatGraf
Cześć smile.gif
Przewertowałem forum, na pewno nie dokładnie, ale podobnego tematu nie znalazłem, dlatego piszę. Jesli jest, nie gniewajcie się za spam smile.gif

Chodzi mi o taki system:

Strona korzysta z katalogu "obrazki", mam dwie wersje kolorystyczne, czyli dwa katalogi "obrazki" - jeden np biały, drugi czarny styl.
Chciałbym zrobić tak, jak jest w różnych cmsach, ze wypisane są np oba style:
- biały
- czarny
Aktualny: biały

To wiem, ale zależy mi na tym, żeby obok był link, "zmień"

Kombinuję tak, że chcę zmieniać nazwę katalogu "bialy" na obrazki lub "czarny" na "obrazki" - strona bierze grafike z "obrazki" i to jest stałe.

Jaki mam problem?
Funkcją rename zmienia mi ładnie, ale jak chcę zmienić na nazwę, która już jest - nie chce.
Druga rzecz - jak skonstruować sam link? Może za pomocą JS?

Wiem, ze zadaję głupie pytania, ale z góry ogromnie dziękuję za pomoc smile.gif
lDoran
Widziałeś kiedykolwiek, żeby w jakimś systemie w jednym katalogu, istniały dwa pliki lub foldery o tej samej nazwie?
BatGraf
no nie. Nie o to mi chodzi.

mam dwa katalogi - "bialy" i "czarny" w "bialy" jest "nagłówek.jpg" z pralką w "czarny" "nagłówek.jpg" z telewizorem

Strona, żeby wyświetlić nagłówek, pobiera z "obrazki/naglowek.jpg" i chodzi mi, żeby po prostu zamienić zawartość katalogu "obrazki"
Nadpisać, czy najpierw skasować i skopiować, któryś z dwóch ("bialy" lub "czarny")

Może napisałem to enigmatycznie, ale chodzi mi o po prostu zmianę nagłówka, poprzez zmianę zawartości katalogu "obrazki"
ADeM
Raczej nie w ten sposób się to robi. Jeśli jednak nie chcesz nigdzie trzymac informacji o stylu, to po prostu rób tak jak robiłeś:
kat1 -> katTemp
kat2 -> kat1
katTemp -> kat2
BatGraf
czyli najpierw zmienić nazwę "obrazki" na np "obrazki_temp" a potem katalog "bialy" na "obrazki?
Niby ok, ale przy następnej zmianie bedzie już istniał katalog "obrazki_temp" bo wczesniej sie utworzył i nie da się zapisać.

Myślałem o skasowaniu najpierw katalogu "obrazki" i dopiero skopiowanie "bialy" i jednoczesną zmianę na "obrazki" ale za diabła nie mogę znaleźć jak skasowac cały katalog z zawartością. Tzn znalazłem sporo, ale jak dotąd nie działa mi to jak nalezy smile.gif (nie czekam z założonymi rękami - szukam smile.gif )


No to rozwiązałem to tak:

  1. <?
  2. function usunkatalog($sciezka) {
  3. if (!file_exists($sciezka)) return false;
  4. if (is_file($sciezka)) return unlink($sciezka);
  5. $katalog = opendir($sciezka);
  6. while (false !== ($plik = readdir($katalog))) {
  7. if ($plik<>"." && $plik<>"..") usunkatalog("$sciezka/$plik");
  8. }
  9. closedir($katalog);
  10. return rmdir($sciezka);
  11. }
  12.  
  13. usunkatalog("szablon/obrazki");
  14. rename("1", "szablon/obrazki");
  15. ?>


Powiedzcie zatem jak bardzo kretyńsko ? smile.gif
ADeM
Masz kat1, i kat2. Obrazki bierzesz z kat1. Jak chcesz zmienic styl na kat, to robisz:
1) zmiana nazwy z kat1 na katTemp
2) zmiana nazwy z kat2 na kat1
3) zmiana nazwy z katTemp na kat2
W ten sposób możesz przełączać między tymi dwoma folderami.

Lepiej by było jednak zapisać gdzieś nazwe stylu i brac pliki z odpowiedniego folderu, w zależności od niego.
BatGraf
hmm, chyba lepsze rozwiązanie niż moje. Nie przyszło mi do głowy, żeby zrobić jednocześnie trzy operacje zmiany nazwy, faktycznie. Zaraz wypróbuję.


Działa smile.gif Dzięki

Kolejny raz dostaję dowód, że php to bardziej umiejętność korzystania z mózgu niz klawiatury smile.gif
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.