Zmazanie všetkého v priečinku
Zmazanie všetkého v priečinku
Dobrý deň,
chcel by som vás poprosiť že či by ste mi nespravili jeden php skript ktory by vymazal všetko v priečinku v ktorom sa náchádza (všetko v priečinku aby vymazal okrem seba). Mám zálohovací script ktorý keď zákazník spustí tak mu vytvorí zálohu sevrera, a potreboval by som tento script každý deň o 0:00 spúšťať, čiže každý deň by to vymazalo obsah adresára.
Ďakujem za každú pomoc
chcel by som vás poprosiť že či by ste mi nespravili jeden php skript ktory by vymazal všetko v priečinku v ktorom sa náchádza (všetko v priečinku aby vymazal okrem seba). Mám zálohovací script ktorý keď zákazník spustí tak mu vytvorí zálohu sevrera, a potreboval by som tento script každý deň o 0:00 spúšťať, čiže každý deň by to vymazalo obsah adresára.
Ďakujem za každú pomoc
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Zmazanie všetkého v priečinku
Kód: Vybrať všetko
function getName(){
$break = explode('/', $_SERVER["SCRIPT_NAME"]);
return $break[count($break) - 1];
}
function deleteAll($dir='.',$delDir=false){
if(!$dh = @opendir($dir)){
return;
}
while (false !== ($obj = readdir($dh))){
if($obj == '.' || $obj == '..' || $obj == getName()){
continue;
}
if (!@unlink($dir . '/' . $obj)){
deleteAll($dir.'/'.$obj, true);
}
}
closedir($dh);
if ($delDir){
@rmdir($dir);
}
return;
} Re: Zmazanie všetkého v priečinku
Nebolo by v pripade linuxoveho serveru optimalnejsie spustit tam rm -rf dir ? 
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Zmazanie všetkého v priečinku
ak má safe_mode tak mu exec, system ani nič podobné spustiť nepôjde.
Re: Zmazanie všetkého v priečinku
Ďakujem za pomoc, neuviedol som potrebné Informácie, mám Linux s možnosťou exec(); konkrétne distribúciu debian.
Audiotrack ta funkcia nezmaze vsetko v priecinku? ja potrebujem aby zmazalo vsetko okrem toho suboru ktory bude spustany v tom priecinku na zmazanie suborov... alebo ak by sa dalo cez exec spravit ze by ten subor nebol s tom priecinku a cez exec by sa cely priecinok vymazal by bolo najlepšie... Ak by to takto išlo cez exec tak mi stačí iba ten exec, ostatok okolo toho scriptu si dorobim... stacil by mi len ten riadok s exec ktory vykona to zmazanie obsahu priecinka... Alebo mňa ešte napadlo že či sa nedá vymazať celý priečinok potom znovu vytvoriť a nastaviť mu chmod 777 pomocou exec.
Ďakujem za každú odpoveď.
WebScript
Audiotrack ta funkcia nezmaze vsetko v priecinku? ja potrebujem aby zmazalo vsetko okrem toho suboru ktory bude spustany v tom priecinku na zmazanie suborov... alebo ak by sa dalo cez exec spravit ze by ten subor nebol s tom priecinku a cez exec by sa cely priecinok vymazal by bolo najlepšie... Ak by to takto išlo cez exec tak mi stačí iba ten exec, ostatok okolo toho scriptu si dorobim... stacil by mi len ten riadok s exec ktory vykona to zmazanie obsahu priecinka... Alebo mňa ešte napadlo že či sa nedá vymazať celý priečinok potom znovu vytvoriť a nastaviť mu chmod 777 pomocou exec.
Ďakujem za každú odpoveď.
WebScript
-
Mek
Addict
- Príspevky: 4661
- Registrovaný: 23 mar 2005, 23:00
- Bydlisko: ZA <-> TN
- Kontaktovať používateľa:
Re: Zmazanie všetkého v priečinku
Ja pouzivam toto:
(zmaze rekurzivne vsetky subory a podadresare v zadanej ceste); odskusane, funkcne
(zmaze rekurzivne vsetky subory a podadresare v zadanej ceste); odskusane, funkcne
Kód: Vybrať všetko
<?
function advancedRmdir($path) {
$origipath = $path;
$handler = opendir($path);
while (true) {
$item = readdir($handler);
if ($item == "." or $item == "..") {
continue;
} elseif (gettype($item) == "boolean") {
closedir($handler);
if (!@rmdir($path)) {
return false;
}
if ($path == $origipath) {
break;
}
$path = substr($path, 0, strrpos($path, "/"));
$handler = opendir($path);
} elseif (is_dir($path."/".$item)) {
closedir($handler);
$path = $path."/".$item;
$handler = opendir($path);
} else {
unlink($path."/".$item);
}
}
return true;
}
echo advancedRmdir('./myfolder/');
?>Re: Zmazanie všetkého v priečinku
takze ty mas teda 2 sposoby :WebScript napísal: Ďakujem za každú odpoveď.
prvy je ten ze mas nieco ako odkaz(shortcut) v tom priecinku ktory ked spustis tak vymaze vsetky subory a priecinky okrem toho daneho odkazu
druhy je ten ze zmases cely ten priecinok aj s tym odkazom a potom ho znovu vytvoris aj s tym odkazom alebo jak?
ked execujes tak ten
Kód: Vybrať všetko
rm -rf Kód: Vybrať všetko
chmod 777 file.txtpriklad z pana googlea
Kód: Vybrať všetko
http://onwebdevelopment.blogspot.com/2008/02/how-to-delete-all-files-and-subfolders.html-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: Zmazanie všetkého v priečinku
veď to som mu písal už aj ja. Potom to mek dal znovu v mierne zložitejšej a kostrbatejšej forme, a teraz si mu ty zase dal link na to isté.
-
aughostino
Medium Professional
- Príspevky: 1269
- Registrovaný: 26 apr 2007, 16:05
Re: Zmazanie všetkého v priečinku
Kód: Vybrať všetko
echo advancedRmdir('./myfolder/');Re: Zmazanie všetkého v priečinku
Kód: Vybrať všetko
echo advancedRmdir('./myfolder/');
mkdir('./myfolder/',0777);Re: Zmazanie všetkého v priečinku
Ďakujem veľmi za každú odpoveď
Prepáčte nebol som tu, nakoniec som to vyriešil tak že som si nechal poradiť a ten script na vymazanie obsahu priečinka som dal von s priečinka ( o úroveň vyššie v adresárovej štruktúre ) a do toho scriptu som dal aby to vymazalo priečinok a znovu vytvorilo s chmod777
Ešte raz ďakujem za skvelú pomoc každému ktorý mi pomohol, s týmto som už dávno nerobil.
//P.S. Toto fórum je najlepšie v Česku aj Slovensku!
Prepáčte nebol som tu, nakoniec som to vyriešil tak že som si nechal poradiť a ten script na vymazanie obsahu priečinka som dal von s priečinka ( o úroveň vyššie v adresárovej štruktúre ) a do toho scriptu som dal aby to vymazalo priečinok a znovu vytvorilo s chmod777
Ešte raz ďakujem za skvelú pomoc každému ktorý mi pomohol, s týmto som už dávno nerobil.
//P.S. Toto fórum je najlepšie v Česku aj Slovensku!