Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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 );
    }	
	}
	
?>
Předmět Autor Datum
Nemělo by tam spíš být něco jako: $dir.'/pokus/ ?
Wikan 25.07.2016 08:26
Wikan
Ani toto obsah složky pokus nesmaže: <?php function delTree($dir) { $files = glob( $dir.'/pokus/',…
doklates 25.07.2016 09:29
doklates
Ještě je problém v tom, že to nehledá soubory v podsložkách, ale v podložkách "pokus" každé podsložk…
Wikan 25.07.2016 09:33
Wikan
Toto mi ale smaže celý web ne? Já potřebuji smazat pouze obsah složky pokus vše ostatní by mělo zůst…
doklates 25.07.2016 09:51
doklates
No tak to zavoláš s argumentem 'pokus/', ne?
Wikan 25.07.2016 11:02
Wikan
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…
hynajs 25.07.2016 10:03
hynajs
Davas tam asi blby pattern, ne? Skusal si napr. $dir.'/pokus/*' alebo *.* ? A normalne je ze Deltree…
MM.. 25.07.2016 10:04
MM..
... a s tou mojou poslednou vetou suvisi aj tvoja hlavna chyba, kedze volas rekurzivne deltree, tak…
MM.. 25.07.2016 10:11
MM..
Aha, takže to vlastně nejde udělat.
doklates 25.07.2016 10:38
doklates
Ono to udelat jde a velmi jednoduse. Som to snad pisal hned v 1. mojej odpovedi, a aj Wikan ti pise…
MM.. 25.07.2016 15:55
MM..
Jasně, ale jak to udělat mi nenapíšeš. Pouze že to jde že? Tak dík, jste super poradna. Příště se za…
doklates 25.07.2016 19:47
doklates
Však jsem ti napsal, jak na to. Ale tvoje věc, jen se urážej.
Wikan 25.07.2016 19:50
Wikan
Ale když tam zadám toto tak to nefunguje <?php function delTree($dir) { $files = glob( $dir.'pokus/…
doklates 25.07.2016 19:54
doklates
Však jsem psal, že tam ten pokus nemá co dělat.
Wikan 25.07.2016 19:56
Wikan
Ale já potřebuju smazat jenom obsah složky pokus. Pokud to tam nezadám tak mi to smaže všechno a to…
doklates 25.07.2016 20:01
doklates
A tohle jsi četl? No tak to zavoláš s argumentem 'pokus/', ne?
Wikan 25.07.2016 20:03
Wikan
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 m…
doklates 25.07.2016 20:06
doklates
Máš to odstranit z metody a dát to do jejího volání. Už chápeš?
Wikan 25.07.2016 20:08
Wikan
<?php function delTree($dir) { $files = glob( $dir.'/*', GLOB_MARK ); foreach( $files as $file ){ if…
MM.. 25.07.2016 20:05
MM..
Asi to nechápu. Když tam dám toto tak se nestane nic!!! <?php function delTree($dir) { $files = glo…
doklates 25.07.2016 20:08
doklates
a kam to davas? Co je v premennej $dir mimo funkcie? Ked mi nevies odpovedat, tak potom ten posledny…
MM.. 25.07.2016 20:10
MM..
<?php function delTree($dir) { $files = glob($dir.'*', GLOB_MARK); foreach ($files as $file){ if (is…
Wikan 25.07.2016 20:16
Wikan
Funguje mi toto, díky moc, ale je problém že to odstraní i složku pokus, já bych potřeboval aby to o…
doklates 25.07.2016 20:31
doklates
<?php function delTree($dir) { $files = glob( $dir.'/*', GLOB_MARK ); foreach( $files as $file ){ if…
MM.. 25.07.2016 20:36
MM..
<?php function delTree($dir, $removeSelf = false) { $files = glob($dir.'*', GLOB_MARK); foreach ($fi… poslední
Wikan 25.07.2016 20:36
Wikan

Ani toto obsah složky pokus 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 );
    }
	if (is_dir($dir)) rmdir( $dir );
	}
	
?>

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á.

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.

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

Ale když tam zadám toto tak to nefunguje

<?php
function delTree($dir) {
    $files = glob( $dir.'pokus/', GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
	if (is_dir($dir)) rmdir( $dir );
	}
	
?>

Asi to nechápu. Když tam dám toto tak se nestane nic!!!

<?php
function delTree($dir) {
    $files = glob( $dir.'/*', GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
	if (is_dir($dir)) rmdir( $dir );
}
delTree($dir.'/pokus'); // toto len zmaze podzlozku pokus, chapes to?

?>

Může mi někdo prosím upravit ten kód aby to fungovalo? Prrrrroooooossssssím!!!!!!!

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 ?

<?php
function delTree($dir) {
    $files = glob( $dir.'/*', GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
	if (is_dir($dir)) rmdir( $dir );
}
delTree('pokus')

?>
<?php
function delTree($dir) {
    $files = glob( $dir.'/*', GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
	if (is_dir($dir)) rmdir( $dir );
}

$files = glob( 'pokus/*', GLOB_MARK );
foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
?>

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)

Zpět do poradny Odpovědět na původní otázku Nahoru