filesize

Programovacie jazyky, rady, poradňa...
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

filesize

Príspevok od používateľa error17 »

zdravim chcem sa opytat ako mam napisat ked chcem aby sa mi vypisovali KB,MB a nie len bajty dakujem

Kód: Vybrať všetko

<?php
$filename = 'xyz.jpg';
echo $filename . ': ' . filesize($filename) . ' bytes';
?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: filesize

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?php
$filename = 'xyz.jpg';
$mb = 0;
$mb = filesize($filename) / 1024 / 1024;
$kb = ($mb == 0) ? filesize($filename) / 1024 : (filesize($filename) / 1024) - ($mb * 1024);
echo $filename . ': ' . $mb . 'MB ' . $kb . 'kB';
?>
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: filesize

Príspevok od používateľa error17 »

dik ale vies mi poradit aj s matematickou podmienkou?? aby vypisovalo len bud jedno alebo druhe?? lebo ja som to napisal ale nejak mi to nechce fungovat dakujem:)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: filesize

Príspevok od používateľa audiotrack »

buď jedno alebo druhé ti spôsobí nepresnosti, lebo ak vypíšeš iba MB pri súbore čo má pár (k)bytov tak to bude 0. Ako presne by si si predstavoval ten výpis?
pat137
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 30
Registrovaný: 18 jan 2010, 19:31
Bydlisko: Bratislava

Re: filesize

Príspevok od používateľa pat137 »

myslis nejak tak? ak je subor vacsi ako 1MB, tak to vypise v MB, inak v kB?

Kód: Vybrať všetko

<?php
$filename = 'xyz.jpg';
$mb = 0;
$mb = filesize($filename) / 1024 / 1024;
$kb = filesize($filename) / 1024;
if($mb == 0)
  echo $filename . ': ' . $kb. 'KB';
else
  echo $filename . ': ' . $mb. 'MB';
?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: filesize

Príspevok od používateľa audiotrack »

pat137 to je presne to na čo som narážal, ak má súbor 2047 kB tak mu napíše že má 1MB ale 1023kB stratí. Čiže z takmer dvojmegového súboru mu napíše že má polovicu. Bude tam mať takéto zaokrúhlovanie, čiže preto píšem aj MB aj kB. On chce ale iba jedno, a to mi nejak nesedí prečo :)
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: filesize

Príspevok od používateľa error17 »

no ten posledny kod funguje len pri suboroch vacsich ako 1MB chcel by som to tak, ze ak ma menej ako 1MB tak zapise napr. 489,74KB.. a ak ma viac ako 1MB tak napr. 4,47MB
pat137
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 30
Registrovaný: 18 jan 2010, 19:31
Bydlisko: Bratislava

Re: filesize

Príspevok od používateľa pat137 »

tak pri suboroch vacsich ako 1MB dopocitaj aj zvysnu cast...z prebytocnych KB dopocitaj percenta - prebytok/10.24...len si uz osetri vysledok od 0 do 10 (aby ti tam nehadzalo 5.2 namiesto 5.02) a vyssie 99 (ak to budes zaokruhlovat napr 99, 97 - co je asi prebytok 1023KB - tak aby ti to nepisalo .100, resp .00 bez upravy cisla v MB)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: filesize

Príspevok od používateľa audiotrack »

a nebolo by jednoduchšie $filesize($filename) / 1024.0 / 1024.0 ? :) Keď nebudeš deliť celočíselne tak ten problém čo píšem nenastane ale výsledok bude pekne 1,99 MB. Tvojím čachrom machrom s percentami som nejak nepochopil
pat137
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 30
Registrovaný: 18 jan 2010, 19:31
Bydlisko: Bratislava

Re: filesize

Príspevok od používateľa pat137 »

tak o tom necelociselnom deleni som nevedel :o

btw od zaciatku si vedel o co tu ide, ale napises to az teraz 8)
DomCZo
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 235
Registrovaný: 16 okt 2006, 22:49

Re: filesize

Príspevok od používateľa DomCZo »

Kód: Vybrať všetko

<?php
function PrepocetCisla($c, $d)
{
  if($c >= 1024)
  {
    $c = $c/1024;
    if($c >= 1024)
    {
      $c = $c/1024;
      if($c >= 1024)
      {
        $c = $c/1024;
        $s = "GB";
      }
      else
      {
        $s = "MB";
      }
    }
    else
    {
      $s = "KB";
    }
  }
  else
  {
    $s = "B";
  }
  return Round($c, $d)." ".$s;
}

$cislo = 8310230;
echo PrepocetCisla($cislo, 1);
?>
Môže byť? Prvý vstup je tvoja veľkosť, druhý vstup je počet desatinných miest.
error17
Amateur
Amateur
Príspevky: 18
Registrovaný: 07 jan 2010, 22:12

Re: filesize

Príspevok od používateľa error17 »

hej moze dakujem pekne:-) aj ked som to uz spravil ale tento vyzera lepsie,, este raz thx..
Napísať odpoveď