
PHP smazání obsahu složky
Chtěl bych pomocí php smazat obsah složky pokus
Proč mi to takto nic nesmaže?
<?php
function delTree($dir) {
$files = glob( $dir . 'pokus/', GLOB_MARK );
foreach( $files as $file ){
if( is_dir( $file ) )
delTree( $file );
else
unlink( $file );
}
}
?>
Nemělo by tam spíš být něco jako:
?
Ani toto obsah složky pokus nesmaže:
Ještě je problém v tom, že to nehledá soubory v podsložkách, ale v podložkách "pokus" každé podsložky. Což tam předpokládám nemáš.
Takže by tam spíš mělo být jenom tohle:
Toto mi ale smaže celý web ne? Já potřebuji smazat pouze obsah složky pokus vše ostatní by mělo zůstat jak je. Složka pokus obsahuje další složky se soubory a ty právě potřebuju odstraňovat pravidelně. Prostě aby složka pokus zůstala po procesu prázdná.
No tak to zavoláš s argumentem 'pokus/', ne?
Ani v případě správného kódu nemusíš být úspěšný. Účet, pod nímž běží webový server PHP, musí mít k výmazu právo.
Ovšem pokud jsi složky zavedl a spravoval pomocí PHP kódu, pak je smázneš bez problému.
Davas tam asi blby pattern, ne? Skusal si napr. $dir.'/pokus/*' alebo *.* ?
A normalne je ze Deltree nepridava ziadne 'pokus/', ale deltree dostane uz zlozku ktoru ma vycistit, t.j. to pokus tam ma pridat ten kto tu fciu vola, a ne vovnutri fcie. Vovnutri fcie mas pridat len tu hviezdicku. Tak to je potom urobene nedementne, aby o rok niekto kto zavola fciu deltree, nedostal 3 infarkty.
... a s tou mojou poslednou vetou suvisi aj tvoja hlavna chyba, kedze volas rekurzivne deltree, tak tam zakazdym pridavas zas ten /pokus/ aj na subzlozky, sam si sa do tej dementnosti zamotal.
Aha, takže to vlastně nejde udělat.
Ono to udelat jde a velmi jednoduse. Som to snad pisal hned v 1. mojej odpovedi, a aj Wikan ti pise to same vyssie.
Jasně, ale jak to udělat mi nenapíšeš. Pouze že to jde že? Tak dík, jste super poradna. Příště se zase na něco zeptám. To že to jde vím taky ale bohužel nevím jak. Proto jsem se ptal. Mělo by se to tu místo poradna jmenovat machrovna. Machruju na ostatní že vím jak na to , ale nepovím jim to. Super, tak se mějte čau
Však jsem ti napsal, jak na to. Ale tvoje věc, jen se urážej.
Ale když tam zadám toto tak to nefunguje
Však jsem psal, že tam ten pokus nemá co dělat.
Ale já potřebuju smazat jenom obsah složky pokus. Pokud to tam nezadám tak mi to smaže všechno a to nechci!!!
A tohle jsi četl?
Tak jsem asi blbej. Když tam mám pokus tak mi napíšeš že tam nemá co dělat a když ho odstraním tak mi napíšeš že tam má být. Jako děláš si ze mě srandu?
Máš to odstranit z metody a dát to do jejího volání. Už chápeš?
Asi to nechápu. Když tam dám toto tak se nestane nic!!!
Může mi někdo prosím upravit ten kód aby to fungovalo? Prrrrroooooossssssím!!!!!!!
a kam to davas? Co je v premennej $dir mimo funkcie? Ked mi nevies odpovedat, tak potom ten posledny riadok zmen na
delTree('pokus')
Funguje mi toto, díky moc, ale je problém že to odstraní i složku pokus, já bych potřeboval aby to odstranilo soubory v ní, ale složka pokus zůstala. Šlo by to ?
otazne je potom uz len ze ci tam radsej nedat aj to lomitko na zaciatok t.j. '/pokus/*', ako to daval wikan, aby bolo ta cesta absolutna z rootu a ne relativna (bohvie voci comu je potom relativna, voci nejakemu aktualnemu adresaru.)
P.S. alebo rovno skus to wikanove nizsie cele tak jak to je, tak to je lepsie (az na stack naroky ale to je jedno)