Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] usunięcie spacji przy liczbie
Forum PHP.pl > Forum > Przedszkole
marcinsm
Witajcie, mam wyciąg z banku i wyrażeniem regularnym sobie go podzieliłem, kwota jaką klient wpłaca ma postać: 1 230,00 PLN, zmienna $value = 1 230,00 i nie umiem jej zmienić do postaci bez spacji: 1230,00.
Funkcją $value = str_replace(' ','', $value); nie działa - wynikiem jest dalej 1 230,00, funkcja na pewno działa bo jeśli chce zamienić 0 na np. A to mam 1 23A,AA
Macie jakąś sugestię bo przyznam że pomysły już się skończyły smile.gif
Salvation
A jak użyjesz tego?
  1. $value = preg_replace('/\s+/', '', $value);
marcinsm
Cytat(Salvation @ 14.06.2022, 23:07:26 ) *
A jak użyjesz tego?
  1. $value = preg_replace('/\s+/', '', $value);

nie działa, dalej mam wyniki:
string(6) "750.00"
string(9) "1 541.00"
string(5) "65.00"
string(5) "65.00"
string(5) "1 230.00"

Cytat(viking @ 15.06.2022, 04:05:08 ) *

z tego co wiem to jest funkcja która daje możliwość zamiany na taki format jaki otrzymuję w wyciągu, jednak nie zamieni mi do formatu bez spacji....
trueblue
Zarówno str_replace jak i preg_replace działają: https://onlinephp.io/c/d1c51
Pokaż swój kod.
viking
Cytat(marcinsm @ 15.06.2022, 08:51:13 ) *
z tego co wiem to jest funkcja która daje możliwość zamiany na taki format jaki otrzymuję w wyciągu, jednak nie zamieni mi do formatu bez spacji....

To ciekawe, bo nawet w dokumentacji zaraz pod opisem masz przykład jak to osiągnąć.
marcinsm
Cytat(trueblue @ 15.06.2022, 08:57:20 ) *
Zarówno str_replace jak i preg_replace działają: https://onlinephp.io/c/d1c51
Pokaż swój kod.


tak normalnie mi działa, lecz tu na tym serwerze mi to nie działa smile.gif
  1. $value = str_replace(',','.', isset($matches[$pattern['pvalue']]) ? trim($matches[$pattern['pvalue']]) : '');
  2. $value = trim(str_replace(' PLN','', $value));
  3. $value = preg_replace('/\s+/', '', $value);
  4. $value = str_replace(' ', '', $value);
gino
@viking number_format potrzebuje float a wrzucany jest string


edit: co to znaczy "tu na tym serwerze", sprecyzuj
marcinsm
Cytat(gino @ 15.06.2022, 09:19:57 ) *
@viking number_format potrzebuje float a wrzucany jest string


edit: co to znaczy "tu na tym serwerze", sprecyzuj


chodzi mi że skrypt mam odpalony na kilku serwerach i tylko na jednym mam problem... albo ten wyciąg ma zakodowane znaki smile.gif
trueblue
Jeśli miałby zakodowane znaki, to nie działałoby na żadnym serwerze.
Chyba, że na tym jednym pobierasz dane z innego źródła.

Pokaż co zawiera string przed jego jakimikolwiek modyfikacjami, czyli var_dump($wartosc).
Pyton_000
Zrób sobie

  1. $value = preg_replace('/[^0-9.]/', '', $matches[$pattern['pvalue']]);


i po zawodach
trueblue
Cytat(Pyton_000 @ 15.06.2022, 14:17:59 ) *
Zrób sobie

  1. $value = preg_replace('/[^0-9.]/', '', $matches[$pattern['pvalue']]);


i po zawodach

I z wartości: "1 230,00" otrzyma "123000"...
Salvation
Cytat(trueblue @ 15.06.2022, 10:36:39 ) *
Pokaż co zawiera string przed jego jakimikolwiek modyfikacjami, czyli var_dump($wartosc).

+1
To jest najważniejsza informacja teraz, bo niemożliwe jest to, że podawane powyżej rozwiązania nie działają.
marcinsm
Cytat(Pyton_000 @ 15.06.2022, 14:17:59 ) *
Zrób sobie

  1. $value = preg_replace('/[^0-9.]/', '', $matches[$pattern['pvalue']]);


i po zawodach


no i pięknie ! działa dziękuję bardzo !
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.