Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak to wyciąć z ciągu?
Forum PHP.pl > Forum > Przedszkole
Arek00
po skracaniu dłuższego ciągu doszedłem do tego że moja zmienna ma taką zawartość:

  1. <?php
  2.  
  3. $zmienna = " 0.12 ";
  4.  
  5. ?>

z przodu i z tyłu jest jakaś spacja. zamiana przy użyciu trim i str_replace nie działa. gdy zrobię coś takiego:

  1. <?php
  2.  
  3. echo strlen($zmienna);
  4.  
  5. ?>


w wyniku dostaję 50... co to za znaki mogą być? jak je wyciąć żeby zostały tylko cyfry i kropka?
pyro
  1. <?php
  2. $zmienna = " 0.12 ";
  3. $zmienna = (float)$zmienna;
  4. echo $zmienna;
  5. ?>
Arek00
gdyby to było takie proste.... sprawdzałem (float)$zmienna, floatval($zmienna) i settype($zmienna, "float") i efekt jest zawsze taki: "0" (w $zmienna jest zero)
Crozin
1) Spróbuj mb_strlen" title="Zobacz w manualu PHP" target="_manual.
2) Pokaż w jakim procesie otrzymałeś taki wynik.
JoShiMa
A nie wystarczy poprostu trim() ?
ucho
Kod
preg_replace('/[^0-9.]/', '', $zmienna);

Jeśli to nie zwróci liczby to poprosimy o jakiegoś hexdumpa, bo to muszą być jakieś dziwne unikodowe symbole zamiast cyfr... albo diabli wiedzą co tongue.gif
empathon
To kolega chyba nie pisze tego w PHP...

Kod
lukaszr@Goddard:/$ php -r "var_dump(is_float((float)' 0.12'));"
bool(true)


Zresztą PHP ma automatyczną konwersje typów...
Kod
lukaszr@Goddard:/$ php -r "echo 5 + ' 0.12';"
5.12
Beynar
Arek00 a moze string ktory otrzymales zaiwera jakies tagi html/xml... cokolwiek, co maskuje przegladarka w zwroconym wyniku
Jesli sprawdzasz wyniki w przegladarce to popatrz na kod wynikowy (w firefoxie 'pokaż źródło strony')
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.