Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> punkty tak jak na chomikuj
aleks365
post 19.03.2012, 13:59:10
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

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


Witam

Jak zrobić prosty skrypt co z tekstu np 156 MB lub 489 KB i tak dalej i jak usunąć MB, KB żeby została sama liczba liczę na waszą pomoc

nie wchodzi w grę wyświetlanie trzesz pierwszych liczb za pomocą

Kawałek kodu
  1. $str=explode(' ',substr($str,0,3));


bo mam też pliki co zajmują 59 KB

Chciałem tego użyć do mojego skryptu co działa jak na chomikuj że użytkownik ma ilość MB np 45646 MB i tyle ile plik zajmuje tyle odejmuję od 45646
Go to the top of the page
+Quote Post
gothye
post 19.03.2012, 14:02:00
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


  1. echo str_replace(array('KB','MB'),'',$liczba)


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
aleks365
post 19.03.2012, 14:14:23
Post #3





Grupa: Zarejestrowani
Postów: 134
Pomógł: 1
Dołączył: 26.02.2012

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


OK dzięki ale jest problem zrobiłem to tak
  1. <?php
  2. $liczba = '145 MB';
  3.  
  4. echo ''.str_replace(array('B','KB','MB','GB','TB'),'',$liczba).'';
  5. ?>

I nie usuwa MB bo wywala mi 145 M to M zostaje może źle zastosowałem to co zrobićquestionmark.gifbiggrin.gif

Poradziłem sobie trzeba było zmienić kolejność

z
  1. 'B', 'KB', 'MB', 'GB', 'TB'


na
  1. 'TB','GB','MB','KB','B'

tak od tyłu napisać to dzięki

Ten post edytował aleks365 19.03.2012, 14:15:23
Go to the top of the page
+Quote Post
Uriziel01
post 19.03.2012, 20:41:46
Post #4





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Ciekawe co zrobisz dla eksabajtów, petabajtów etc. albo gdy wartość będzie podawana w bitach nie bajtach smile.gif Myślę że znacznie logiczniej użyć tutaj preg_replace bo wtedy pokrywasz wszystkie ewentualności.
Go to the top of the page
+Quote Post
kamil4u
post 19.03.2012, 20:45:43
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


  1. $liczba = '124 MB';
  2. echo( (int)$liczba );
?


--------------------
Go to the top of the page
+Quote Post
Uriziel01
post 19.03.2012, 23:41:08
Post #6





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Noooo ale to jest lekkie nadużycie, co prawda tutaj zadziała ale tylko dlatego że te rzutowanie zaakceptuje pierwszy znak. Powinniśmy wyłuskać dane ze strumienia znaków bo takie mamy tutaj zadanie, jedynie przypadkowo rzutowania zwraca taki sam wynik. Ponadto chyba wszyscy zgodzimy się że rzutowanie nieznanego 'czegoś' ze string'ów na int'a przynosi czasami w PHP nieprzewidywalne rezultaty. Tym bardziej że jeżeli już to float a nie int bo autor nigdzie nie powiedział że zawsze będzie to całkowita wartość. wink.gif

Ten post edytował Uriziel01 19.03.2012, 23:42:17
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: 25.04.2024 - 22:08