Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
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 ...


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:57