1. PHP / Говнокод #5259

    +43

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    function ntfs_filesize($filename) 
    {
        return exec("
                for %v in (\"".$filename."\") do @echo %~zv
        ");
    }
    // LINUX SERVERS:
    // str perl_filesize( str $filename );
    /*
    DESCRIPTION: returns the filesize of a large file in string format to... 
    ... prevent 32-bit integer walls  using perl through linux command line.
    */
    function perl_filesize($filename) 
    {
        return exec("
                perl -e 'printf \"%d\n\",(stat(shift))[7];' ".$filename."
        ");
    }

    вот вам!
    http://ru.php.net/filesize отсюда.

    вообще ебанутость filesize в пхп теперь не позволит мне без костылей хранить на сайте файлы больше 2х гиг. хнык хнык
    (пока правдо не надо но я попутно свою файлопомойку хочу личную)

    Запостил: brainstorm, 13 Января 2011

    Комментарии (9) RSS

    • а во. там ищо перл есть....
      охохо
      //Shortest solution to get filesize of a remote website 
      
      $content = file_get_contents("http://www.example.com"); 
      
      $handle = fopen("example-com.html", "w+"); 
      
      fwrite($handle, $content); 
      
      fclose($handle); 
      
      echo size . ': ' . filesize('example-com.html') . ' bytes';


      Shortest solution. moar в общем!
      Ответить
      • в общем-то можно всё усер-контрибутед с php.net сюда
        Ответить
        • не усе )
          самый первый говнокод там очень толковый :)
          function ffilesize($file){
              $ch = curl_init($file);
              curl_setopt($ch, CURLOPT_NOBODY, true);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_HEADER, true);
              $data = curl_exec($ch);
              curl_close($ch);
              if ($data === false) 
                return false;
              if (preg_match('/Content-Length: (\d+)/', $data, $matches))
                return (float)$matches[1];
          }

          бляпиздец. мне придется для своих целей подобные костыли юзать :(
          Ответить
        • Regarding the stat() on files larger than 2GB on 32 bit systems not working

          вротмненоги!!!1111
          Ответить
      • Так решение же здесь #4790 !
        Ответить
        • не. как там - провинутая школота делает. а как я запостил - продвинутые одмины
          Ответить
    • Как вариант, получать строку sprintf("%u", filesize()) и использовать GMP для манипуляций.
      Ответить
      • или bcmath - вроде как иво фсунули в пхп чутьли не стандартно
        Ответить
    • - Сидим, пьём, а Артур Атарбекович в Лондоне важные переговоры ведёт. Если у него всё получиться, то для нас будет очень хорошо.
      Ответить

    Добавить комментарий