Celočíselná proměná int se chová divně. – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Celočíselná proměná int se chová divně. – PHP – Fórum – Programujte.comCeločíselná proměná int se chová divně. – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
30. 12. 2008   #1
-
0
-

Dobrý den, teprve se učím v PHP a potřeboval jsem fci na zjištění velikosti složky (ne soubrou !) kterou jsem si vygooglil a tady je:

<?php

function getsize($path){
if (!is_dir($path))
return filesize($path);
$size=0;
foreach (scandir($path) as $file){
if ($file=='.' or $file=='..')
continue;
$size+=getsize($path.'/'.$file);
}
return $size;
}
print getsize(nazev_slozky);
?>

Fce funguje super, jenže když chci dále pracovat s číslem tak to nejde.
Např velikost složky my to hodí 443630724, což je správně, ale když dám
$size = $size / 1000;

tak to vypíše 165684.912862 což jak je vydět není co bych očekával. Zkoušl jsem zjistit typ a je to integer, ale když to hodim do stringu a pak zpět tak furt špatně, zkoušel jsem všechno možný ale už nevim. Jak můžu dosáhnout toho aby se to chovalo jako normální (mnou srozumitelné) čislo které můžu dělit, přičítad atd.? Děkuji mnohokrát.

Nahlásit jako SPAM
IP: 213.194.207.–
Reklama
Reklama
KIIV+42
God of flame
30. 12. 2008   #2
-
0
-

testnul sem toto:

  

$size = 443630724;
echo $size."\n";
$size = $size / 1000;
echo $size."\n";

výsledek:
443630724
443630.724



to same s tim zjistenim velikosti:

  $size = getsize("h:\\_filmy_");

echo $size."\n";
$size = $size / 1000;
echo $size."\n";

111144642266
111144642.266


a ani s dalsim adresarem neni problem
254328226799
254328226.799

asi bych se radeji koukl jestli mas aktualni verzi php a nedelas tam jeste neco jinyho spatne...

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
30. 12. 2008   #3
-
0
-

To KIIV : tak sem to taky tesnul a jede mi to normálně ... určitě tam bude jiná chyba jak už psal KIIV

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Tak to teda nechapu
~ Anonymní uživatel
2 příspěvky
30. 12. 2008   #4
-
0
-

Dělám to na serveru. takže php je určitě vpoho. A moc měnenapadá co bych tam mohl dělat špatně. To číslo je správně (odpovídá velikosti složky) a při dělení snad ani chyba udělat nejde. A navíc jsem tam i zkoušel třeba přičíst jedničku a to číslo se uplně změnilo. Divný ale je že tobě to běhá, takže chyba musí být ve mě. To fakt nechápu...

Nahlásit jako SPAM
IP: 213.194.207.–
crAzY^
~ Moderátor
+10
Grafoman
30. 12. 2008   #5
-
0
-

To Tak to teda nechapu : zkus is_numeric($prom)... jestli to nebere třeba jako řetězec...

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
KIIV+42
God of flame
30. 12. 2008   #6
-
0
-

no kdo vi jestli tam neni nejaka stara verze php s nejakym veselym bugem...
hod sem ten kod jak presne vypada...

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tak to teda nechapu
~ Anonymní uživatel
2 příspěvky
30. 12. 2008   #7
-
0
-

Tak už to mám. Když to dám až za funkci jako vy tak mi to funguje. Ale když přidám řádek

$size = $size/1000;
před return ve funkci tak to háže ty nesmysly. Chtěl jsem totiž aby mi to vracelo rovnou v MB. No nic vydělim to teda až potom. Ale stejně mi neni jasný proč se to udělalo. Když na to někdo přijdete dejte vědět. Každopádně dík.

Nahlásit jako SPAM
IP: 213.194.207.–
KIIV+42
God of flame
30. 12. 2008   #8
-
0
-

mimochodem kdyz to chces v MB nemusis delit 1024*1024 ? :)

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
30. 12. 2008   #9
-
0
-

jj to bysi měl :)

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
To je detail
~ Anonymní uživatel
1 příspěvek
30. 12. 2008   #10
-
0
-

Ja vim to je detail, to bylo jen na zkousku aby se mi to lepe kontrolovalo. Přišel nikdo na to čim to teda je?

Nahlásit jako SPAM
IP: 213.194.207.–
bukaj_0010
Věrný člen
30. 12. 2008   #11
-
0
-

Tak to teda nechapu
Ale když přidám řádek $size = $size/1000; před return ve funkci tak to háže ty nesmysly.
Používá to rekurzivní volání, bacha na to ;o) Pak se nediv, když sčítáš hrušky s jabkama :o)

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
KIIV+42
God of flame
31. 12. 2008   #12
-
0
-

To bukaj_001 : good point...

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
31. 12. 2008   #13
-
0
-

No, pokud se bavime v desitkove soustave, a jako ze bavime, tak je to spravne / 100. Pak cteme sprave kilobytes, atp. Ovšem pokud jsme ve dvojkove soustave, pak musíme delit / 1024. Ale jednotky cteme kibibytes. Ikdyz, norma JEDEC umoznuje cteni i "po staru". Vice v tabulce na wiki:
http://en.wikipedia.org/wiki/Byte


Editoval hrach: pozor, hrach chce byt dneska zase chtrej, berte to s rezervou, ale poucte se, at vite, ze neco takovyho exituje. taky sem na to pred tydnem cumel.

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 55 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý