Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wielkość plików zamiana na jednostki
fiasko
post 9.04.2011, 00:31:03
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Czy ja dobrze to przeliczam na jednostki ? Bo coś mi się nie zgadza.

Kod

$size = 1048576; // zakładam , że to są bajty w ktorych podawana jest

$size = $_FILES['Filedata']['size'];
$size =  $size / 1024;
$size = round($size, 2);
$dl = round($size, 0);

if ($dl < 1024) {
$jednostka = 'KB';
}
if ($dl >= 1024) {
$jednostka = 'MB';
$size =  $size / 1024;
$size = round($size, 2);
}

echo 'size '.$size .'<br>';
echo 'długość '.$dl .'<br>';
echo 'jednostka '.$jednostka .'<br>';


Go to the top of the page
+Quote Post
Speedy
post 9.04.2011, 01:38:15
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Wygląda na to, że dobrze. Mam jedynie pewne wątpliwości, co do tego zaokrąglania.

Możesz też spróbować tak:

  1. <?php
  2.  
  3. $size = 1048576;
  4.  
  5. if(($size = $size/1024) >= 1)
  6. {
  7. if(($size = $size/1024) >= 1)
  8. {
  9. echo $size.' Mi';
  10. }
  11. else
  12. {
  13. echo ($size*1024).' Ki';
  14. }
  15. }
  16. else
  17. {
  18. echo ($size*1024).' ';
  19. }
  20. echo 'B';
  21. ?>


lub w skróconej formie

  1. <?php
  2.  
  3. $size = 1048576;
  4.  
  5. echo (( (($size = $size/1024) >= 1) ? ( (($size = $size/1024) >= 1) ? $size.' Mi' : ($size*1024).' Ki' ) : ($size*1024).' ' ).'B');
  6. ?>


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
Fifi209
post 9.04.2011, 10:17:09
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Tak prościej


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Speedy
post 9.04.2011, 15:45:39
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Nie wiem, czy prościej, bo do wykonania tak banalnej czynności jest załączany zewnętrzny plik i jakaś klasa. Moje rozwiązanie mieści się w 1 linijce i robi to samo.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post
fiasko
post 10.04.2011, 13:50:07
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Kod
Speedy


Twoje rozwiązanie tnie zaokrągla wyników.


A ta klasa faktycznie to troszkę za duża jest .
Go to the top of the page
+Quote Post
Speedy
post 19.04.2011, 00:18:21
Post #6





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Cytat(fiasko @ 10.04.2011, 14:50:07 ) *
Kod
Speedy


Twoje rozwiązanie tnie zaokrągla wyników.


A ta klasa faktycznie to troszkę za duża jest .


Dodasz sobie round na początku moich wypocin i po sprawie. Żadna filozofia.

Ten post edytował Speedy 19.04.2011, 00:18:51


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:56