Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace ilosc znakow
Forum PHP.pl > Forum > Przedszkole
Lolek13
Witam,

Probuję sformatowac sobie numery telefonow wykorzystywane w mojej aplikacji. Chce zamieniac np 666-666-666 na 666666666. Wykorzystuje do tego:
  1. $tempnr = preg_replace("/\D/", "", $nr);

Wszystko wyglada ok, ale gry probuje zwrocic dlugosc tego lancucha zamiast 9 otrzymuje 14. Gdzie jest błąd ?

Pozdrawiam

rocktech.pl
Witam.

  1. $nr = "666-666-666";
  2. $tempnr = preg_replace ( "/\D/", "", $nr );
  3. var_dump ( $tempnr ) . PHP_EOL;

Daje wynik:
Kod
string(9) "666666666"


W tym kodzie jest wszystko ok. Najlepiej sprawdź co zawiera zmienna $nr ...
Lolek13
xxx-xxx-xxx - to jest $nr

echo strlen($nr) = 11

$tempnr = preg_replace("/\D/", "", $nr);

echo strlen($tempnr); = 14

-.-

nie mam pojecia dlaczego ....

Edit:
Jezeli wprowadze od razu poprawny numer ( czyli taki, w ktorym teoretycznie nie ma czego poprawiac ) to w zmiennej $nr ma on dlugosc 9, a pozniej tez 14 ...

Edit2:
  1. strlen(preg_replace("#[\D]#", "", $nr))


Problem rozwiazany biggrin.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.