Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Operacje na katalogach
xajart
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


Witam i przechodzę do sedna.

Mam pewien skrypcik który ma za zadanie tworzyć odpowiedni folder (co robi bez zarzutu) jak również możliwość zmiany jego nazwy i kasowania go (wraz z zawartością), te dwa pozostałe elementy mi nie działąją i nie mogę wyczaić gdzie mam błąd.

zmianę nazwy wykonuję w taki sposób: 
Kod
$sciezka_old = $url.'/'.$site_old[$i];
                 $sciezka_new = $url.'/'.$site[$i];
                 rename($sciezka_old, $sciezka_new);




zmienna tablicowa tam występuje bo robione jest to w pętli (i akutalizować ma kilka folderów) - niestety nie wykonuje się ten skrypt (chociaż ścieżki identyczne używam przy tworzeniu folderów i działa). 

II. Druga sprawa

to kasowanie zawartości całego katalogu, próbowałem w tym własnych sił, ale mi nie wychodziło, probowałem skorzystać z gotowych rozwiązań ale mi nie zadziałały. Przedstawiam tu jedno z nich.
Kod
$sciezka = $url.'/'.$site[$i];
$katalogglowny = $sciezka;
$katalog[]=$katalogglowny; 
for ($x=0; $x<count($katalog); $x++) 
 { 
 $dir=opendir("$katalog[$x]"); 
 while($znalezione=readdir($dir)) 
  { 
  if(($znalezione!=".")&&($znalezione!="..")) 
   { 
   if (is_dir("$katalog[$x]/$znalezione")=="true") $katalog[]="$katalog[$x]/$znalezione"; 
   else $plik[]="$katalog[$x]/$znalezione"; 
   } 
  } 
 closedir($dir); 
 } 
$katalog = array_reverse($katalog); 
for ($x=0; $x<count($plik); $x++) unlink ("$plik[$x]"); 
for ($x=0; $x<count($katalog); $x++) rmdir  ("$katalog[$x]"); 
echo 'usunięto:<br/>katalogow: '.count($katalog).'<br/>plikow: '.count($plik).'<br/>'; 

Czekam na propozycje rozwiązania tego problemu.
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
to kasowanie zawartości całego katalogu, próbowałem w tym własnych sił, ale mi nie wychodziło, probowałem skorzystać z gotowych rozwiązań ale mi nie zadziałały. Przedstawiam tu jedno z nich.

A nie prościej użyć exec" title="Zobacz w manualu PHP" target="_manual('rm -rf katalog')?

Cytat
zmienna tablicowa tam występuje bo robione jest to w pętli (i akutalizować ma kilka folderów) - niestety nie wykonuje się ten skrypt (chociaż ścieżki identyczne używam przy tworzeniu folderów i działa).

Nie wiem, jak u Ciebie wyglądają ścieżki, ale z tego, co pamiętam, to katalog docelowy musi istnieć.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
bartg
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Co do exec to raczej nie, bo jak wiadomo na większości serwerach(jak nie wszystkich) jest to wyłączone z wyjątkiem dedyków gdy sam sobie włączysz smile.gif

Co do problemu, to jakie masz błedy?


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
jest to wyłączone z wyjątkiem dedyków gdy sam sobie włączysz

Spierałbym się, coraz więcej hostingów nie blokuje.

Cytat
to kasowanie zawartości całego katalogu, próbowałem w tym własnych sił, ale mi nie wychodziło, probowałem skorzystać z gotowych rozwiązań ale mi nie zadziałały. Przedstawiam tu jedno z nich.

PS. Kasujesz wszystkie pliki/katalogi z usuwanego folderu?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
xajart
post
Post #5





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


Powyższy skrypt, co wrzuciłem ma kasować wszystkie pliki i katalogi z usuwanego folderu ale jakoś nie zauważyłem by to robił. Wieć coś z tym skryptem musi być chyba nie tak. Dzisiaj do tego puki co głowy już nie mam sad.gif

co do ścieżki to jest wszędzie w identyczny sposób definiowana więc raczej musi być poprawna skoro zakładanie struktury katalogów i podkatalogów działa, a wykorzystuje do tego mkdir(), podając mu ścieżke i chmod. 


Chyba ze problem tkwi z tym że obecnie to testuje na intrancecie. Foldery zakłada, ale nie zmienia im nazwy ani ich nie usuwa. Wyżej jest podane jak chciałem zmieniać nazwe i usuwać.

PS. co do skryptu usuwania to tak jak by wogóle się nie wykonywał, bo nie pojawiają mi się żadne komunikaty. wiec wnioskuje że zatrzymuje się na etapie pierwszej pętli którą pomija. Poza tym najdziewniejsze w tym skrypcie wydaje mi się zmienna tablicowa $katalog[] nie wiem co ona niby ma zawierać - bo skoro przypisuje się do niej ścieżke która jest ciągiem znaków, więc jest tablicą ale czego ? jednego elementu, to nie ma sensu.

Ten post edytował xajart 21.01.2009, 17:36:49
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 03:37