Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][php / regex] Ukrywanie znaków z podanego stringu
sowi
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 7.03.2004

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


Potrzebuję regexa, który z podanego stringa ukryje (zamieni na x) wszystkie znaki poza pierwszymi i ostatnimi dwoma - np:

z ABC123456
na ABxxxxx56

zrobiłem następujący:

  1. $s = 'ABC123456';
  2. preg_replace('/^(..).+(..)$/', '$1xxxxxx$2', $s);


I działa ok, z jednym ale - jak string ma więcej niż 9 znaków to oczywiście się skraca. A ja bym chciał, żeby w sytuacji gdy mam ABCDEFG123456789 też wyszło ABxxxxxxxxxxxx89
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
_Borys_
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. <?php
  2.  
  3. $s = 'ABCDEFG123456789';
  4. echo preg_replace_callback('/^(..)(.+)(..)$/', function ($m)
  5. {
  6. return $m[1] . str_repeat('x', strlen($m[2])) . $m[3];
  7. }
  8. , $s);
  9.  
  10. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 05:51