De beściak

Czasem lubię się pastwić nad ludźmi, czasem nad kodem. Nad ludźmi bywa kiepsko, bo może to być nielegalne. Nad kodem lepsiej, bo może to stanowić niezłe ćwiczenie. Ostatnio mnie trafiło, jak zobaczyłem commenta o wdzięcznym brzmieniu:

Eddy Vlad
24-Nov-2009 04:59
The shortest recursive delete possible.


/** 
* Delete a file or recursively delete a directory * 
* @param string $str Path to file or directory 
*/ 
function recursiveDelete($str)
{ 
  if(is_file($str))
  { 
     return @unlink($str); 
  } 
  elseif(is_dir($str))
  { 
    $scan = glob(rtrim($str,'/').'/*'); 
    foreach($scan as $index=>$path)
    {
      recursiveDelete($path);
    }
    return @rmdir($str);
  }
}

Kilka minut zabawy i wymodziłem coś takiego:


function rrmdir($path)
{
  return is_file($path)?
    @unlink($path):
    array_map('rrmdir',glob($path.'/*'))==@rmdir($path)
  ;
}

Wspomoże ktoś czymś jeszcze krótszym?

4 responses on “De beściak

  1. grzana

    Można by tak. Bez żadnych warunków :P

    function rrmdir($path)
    {
    @array_map(‚rrmdir’,@glob($path.’/*’));
    @unlink($path);
    @rmdir($path);
    }

  2. diodak

    najkrótszy możliwy. Kiedyś było to „o najkrótszym możliwym czasie wykonania”. wtedy zamiast od

    <?Php

    zaczelibysmy od

    mov edx,mem(tu wpisz cos jakies adresowanie, najlepiej wskznik do tego katalogu)
    ….

    czas leciał. Z czasem optymalizator -O2 -f-unroll-loops i inne takei tam na tyle rozleniwiał, że historia zaczynałaby sie od

    int recursivedelete(filepointer *to_be_deleted)
    {

    }

    Z czasem Kerighan i Ritchie dostali zastapieni przez ANSI oraz jakiegos norwega czy fina od dwóch plusów i stalismy sie obiektowi mimo woli

    a dalej to już prosta scieżka do biometrics->voice)

    /* secret part, do not release to public */
    call recursive_delete(directory) ; /*we actually concentrated more on computer case design, who cares about advanced functions anyway */
    /*end of secret part */

    call i_notify_user_of_success()
    }

    ;)

  3. zibi Post author

    @grzana – i to klasyczny przykład, że duch w narodzie nie ginie ;P Nie pomyślałem o takim nadużyciu ;P Ekstra ;D

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *