Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: punkty tak jak na chomikuj
Forum PHP.pl > Forum > PHP
aleks365
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
gothye
  1. echo str_replace(array('KB','MB'),'',$liczba)
aleks365
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
Uriziel01
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.
kamil4u
  1. $liczba = '124 MB';
  2. echo( (int)$liczba );
?
Uriziel01
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.