Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] preg_replace ilosc znakow
Lolek13
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 21.02.2012
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
rocktech.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

Ostrzeżenie: (0%)
-----


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 ...
Go to the top of the page
+Quote Post
Lolek13
post
Post #3





Grupa: Zarejestrowani
Postów: 121
Pomógł: 4
Dołączył: 21.02.2012
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/biggrin.gif)


Ten post edytował Lolek13 19.07.2012, 12:53:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 00:08