Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> punkty tak jak na chomikuj
aleks365
post
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
 
Start new topic
Odpowiedzi (1 - 5)
gothye
post
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)
Go to the top of the page
+Quote Post
aleks365
post
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ć(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/biggrin.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
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 (IMG:style_emoticons/default/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
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
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ść. (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 17:36