Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyswietlanie liczb
Forum PHP.pl > Forum > Przedszkole
krzysiekk
witam proszę o pomoc czy jest w php "funkcja" ktora zmienia liczbe np 1000000 na 1 000 000
wookieb
LEŃ!!! http://pl2.php.net/number_format
-novik-
Witam
A jak zrobić to na odwrót ? Czyli liczbę np. 1 000 000 zamienić na 1000000.
Mam plik w którym jest (ostatnia liczba zawsze jest liczbą bez miejsc po przecinku):
Kod
Nazwa1,14.25,22.12,6 045 000
Nazwa2, , ,   ,
Nazwa3,1 240.37,32.57,2 388
......

Próbowałem usunąć spacje poprzez
  1. str_replace(' ', '', $dane)
  2. trim($dane);
niestety jakoś nie chcą usunąć spacji, nawet tych w wierszu drugim. PHP wersja 5.3.2

A tak przy okazji macie pomysł jak usunąć np. wiersz drugi (po ostatnim przecinku jest jedna spacja) ?
Kuba707
Tak w ogóle to nie powinno się tak w pliku zapisywać. Zapisywać powinno się jak "najnormalniej". Zapis musi być normalny, prosty a takie formatowanie powinno mieć miejsce tylko przy WYŚWIETLANIU.
-novik-
Witam,
może napisze kod jaki mam:
  1. <?php
  2. $nazwa_pliku3 = "plik.txt";
  3. if (is_readable($nazwa_pliku3))
  4. {
  5. if ($plik3 = fopen($nazwa_pliku3, "r"))
  6. {
  7. $dane3 = fread($plik3, filesize($nazwa_pliku3));
  8.  
  9. if ($dane3 === FALSE) echo "Odczyt danych z pliku nie powiódł się...";
  10. else echo "odczytane dane: <br />";
  11.  
  12. fclose($plik3);
  13.  
  14. } else echo "Nie mogę nawiązać połączenia z plikiem...";
  15. } else echo "Z pliku nie można odczytać informacji lub on nie istnieje...";
  16.  
  17.  
  18. $ok = str_replace(' ', '', $dane3);
  19.  
  20. $nazwa_pliku2 = "plik2.txt";
  21. if (is_writeable($nazwa_pliku2))
  22. {
  23. if ($plik2 = fopen($nazwa_pliku2, "w+"))
  24. {
  25. if (fwrite($plik2, "$ok") !== FALSE) echo "Zapis do pliku zakończył się powodzeniem...";
  26. else echo "Zapis do pliku się nie powiódł...";
  27.  
  28. fclose($plik2);
  29.  
  30. } else echo "Nie mogę nawiązać połączenia z plikiem...";
  31. } else echo "Do pliku nie można dopisać informacji lub on nie istnieje...";
  32. ?>

Po uruchomieniu nie ma żadnego efektu. A wszystko jest OK bo jak zmienię np:
  1. $ok = str_replace(',', '', $dane3);

to usuwa mi przecinki.
Wydaje mi się, że problem polega na wyświetlaniu liczb. PHP automatycznie dodaje separator do liczb tysięcznych, milionowych itd.
-novik-
Witam,
Zrobiłem. Podglądając plik w edytorze HEX, zauważyłem, że znak "spacji" ma wartość A0 a nie 20. Więc zacząłem kombinować i użyłem tego:
  1. $dane3 = iconv("utf-8", "ASCII//IGNORE", $dane3);
bez //IGNORE wywalało błąd na danym znaku, a dzięki temu skasował te znaki i uzyskałem zamierzony efekt.
aarambo.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.