Autor Zpráva
Čeluk
Profil
Proč se mi tímto příkazem nesmaže obsah složky pokus?

<?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 );
    }
    
?>
Fisir
Profil
Reaguji na Čeluka:
Funkci delTree() nikde nevoláš.
juriad
Profil
Čeluk:
A jajaj, ty jsi zkoušel být kreativní. Tu funkci jsi měl nechat jak bývala. Ten adresář pokus jsi ji měl předat jako parametr.
Čeluk
Profil
Stejně se mi ten zápis zdá strašně moc složitej. Nešlo by to zjednodušit? Problém je v tom že mám příklad na webu 30 složek a potřebuju mazat obsah jenom jedné. To je asi technicky nemožné co?
juriad
Profil
Čeluk:
Ta funkce je obecná, očekává, že v té složce můžou být další složky a v nich zase další...
Prostě ji vezmi jako hotovou, neupravuj ji, jen ji předej cestu ke složce, kterou chceš smazat.
Čeluk
Profil
juriad:
A nemůže být problém že v té složce pokus jsou právě další podsložky? Třeba proto to nefunguje. Ještě se raději zeptám, potřeboval bych touto funkcí vždy vymazat obsah složky pokus ve které je cca 2000 složek a v každé kolem 5 souborů textových, je to vůbec technicky možné takto řešit?
juriad
Profil
Ano, znovu říkám, obnov původní verzi té funkce delTree a jen jí předej správný argument.

delTree('pokus/')
Čeluk
Profil
juriad:
Jenomže když to udělám takto tak to napíše chyba 500

<?php
function delTree($dir) {
    $files = delTree('pokus/'), GLOB_MARK );
    foreach( $files as $file ){
        if( is_dir( $file ) )
            delTree( $file );
        else
            unlink( $file );
    }
    if (is_dir($dir)) rmdir( $dir );
    }
    
?>
juriad
Profil
Prosím použij následující funkci, je o něco lepší než ta tvá varianta, kterou jsi bůhvíkde splašil. Nic v ní za žádnou cenu neměň.
function delTree($dir) {
   $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }
    return rmdir($dir);
  } 

Tuto funkci zavoláš a předáš jí cestu k adresáři, který chceš smazat.
delTree('pokus')
Čeluk
Profil
juriad:
Dal jsem to tam takto ale nic se nesmazalo :

<?php
function delTree($dir) {
   $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }
    return rmdir($dir);
  } 
?>
juriad
Profil
Čeluk:
Zavolal jsi tu funkci? Víš vůbec, co je to funkce?
Čeluk
Profil
juriad:
Mám to takto. Nevím co s tím dál udělat.
pcmanik
Profil
Čeluk:
A pozrel si sa na príspevok č. [#9]? Jasnejšie sa to už asi nedá vysvetliť.
Čeluk
Profil
pcmanik:
Já vím, ale když to tam doplním tak to hodí chybu 500

<?php
function delTree($dir) {
   delTree('pokus')
   $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }
    return rmdir($dir);
  } 
?>
Martin2
Profil *
Myslím, že je to marné. Čeluk má evidentně znalosti PHP rovny nule.

Čeluk:
NEzasahuj do funkce delTree, kterou ti napsal [#9] juriad. Nastuduj si základy PHP, používání funkcí a tak dále. Na řádku 3 je syntaktická chyba (a kdyby nebyla, tak zde vytvoříš nekonečnou rekurzi).
Čeluk
Profil
Martin2:
Opravil jsem to takto a už to chybu neháže, ale nic to ani nesmaže :-(

<?php
function delTree($dir) {
   delTree('pokus')
   $files = array_diff(scandir($dir), array('.','..'));
    foreach ($files as $file) {
      (is_dir("$dir/$file")) ? delTree("$dir/$file") : unlink("$dir/$file");
    }
    return rmdir($dir);
  } 
?>
Martin2
Profil *
Čeluk:
Ehm? Kódy [#14] a [#16] jsou stejné?

Myslím, že ti souborové funkce vůbec nepatří do ruky. Teprve ne ty, co něco mažou. A dokonce rekurzivně. Zanech marného snažení a nastuduj si elementární základy programování.
Čeluk
Profil
Dobrý, nemám na to už nervy. Díky za "pomoc". Doufám že se Vám to někdy oplatí. Mažu poradnu ze záložek. K čemu jí tam mám? Abych si zde s Váma psal? Na to je můj čas moc drahý. Potřeboval jsem poradit al sem už příště na 100% nepůjdu. Ať se Vám daří.

Mi víme jak na to ale nepovíme... Tak to jsem ještě nežral. Hodně úspěchů "poradno" tvl to je teda věc.


Jsme poradna, ale na nic se neptejte protože Vám jenom napíšeme že to jde, ale nenapíšeme jak. To si to můžu rovnou vyhledat na internetu. Jenomže tam to není, tak jsem spolíhal na poradnu, ale to jsem se HÓOOOOOOOOODNĚ zmýlil.


Už jsem si to vygoooooglil. Mějte se čaaaaaaaau
Martin2
Profil *
Smyslem tohoto fóra je identifikovat problém a nasměrovat tazatele k jeho řešení. Nikdo tě tu nebude učit programovat nebo za tebe psát skripty.

Kombinace tvé neznalosti, nezájmu a arogance tu asi nikomu scházet nebude. Takže pokud své znalosti začneš prohlubovat samostatně, jedině dobře.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: