Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zagwiazdkowanie fragmentu stringa
Forum PHP.pl > Forum > Przedszkole
kleszczoscisk
Witam

Proszę o pomoc w rozwiązaniu problemu: mam ciąg znaków:
  1. $name = 'Andrzej Kowalski';

potrzebuję zamaskować część znaków, tak aby otrzymać:
Kod
And**** Kowa****

Istotne jest to aby ilość gwiazdek odpowiadała ilości zamaskowanych liter.
scr1pt3r
  1. <?php
  2.  
  3. $start = "Andrzej Kowalski";
  4. $name_surname = explode( " " , $start) ;
  5. $name = $name_surname[ 0 ];
  6. $surname = $name_surname[ 1 ];
  7. $dlugosc = strlen( $name ) ;
  8. $dlugoscdwa = strlen( $surname ) ;
  9.  
  10. for( $i = 3 ; $i <=$dlugosc; $i++ )
  11. {
  12. $name[ $i ] = "*" ;
  13. }
  14. for( $i = 3 ; $i <= $dlugoscdwa ; $i++ )
  15. {
  16. $surname[ $i ] = "*" ;
  17. }
  18.  
  19. echo $name. ' '. $surname ;
  20.  
  21. ?>


Ucze się PHP 2 dni więc narazie taki kod mogę napisać, ale napewno da sie patternem w 4 linijkach...
Btw. dlaczego jak próbowałem zrobić: $i <= strlen( $surname ) wyskakiwało Timed out ? Stack overflow ?

http://codepad.org/WfEfVjAm
kleszczoscisk
  1. function maskuj($string,$ile){
  2. $name_surname = explode("@",$string);
  3. $name = $name_surname[0];
  4. $surname = $name_surname[1];
  5. $dlugosc1 = strlen($name);
  6. $dlugosc2 = strlen($surname);
  7. for($i = $ile; $i <=$dlugosc1-1; $i++ ){$name[ $i ] = "*" ;}
  8. for($i = $ile; $i <= $dlugosc2-1 ; $i++ ){$surname[ $i ] = "*" ;}
  9. return $name.'@'.$surname;
  10. }
  11. echo maskuj('Andrzej_Kowalski@wp.pl',3);

Kod
And*************@wp.**

Dzięki serdeczne !
grabek93
  1.  
  2. <?php
  3.  
  4. $start = "Andrzej Kowalski";
  5. $start = explode( " " , $start) ;
  6.  
  7. foreach($start as $wyraz){
  8. $dlugosc = strlen( $wyraz );
  9. for( $i = 3 ; $i <=$dlugosc; $i++ )
  10. {
  11. $wyraz[ $i ] = "*" ;
  12. }
  13. echo $wyraz." ";
  14. }
  15.  


możesz teraz dowolną ilość wyrazów tak zrobić. Popracuj nad wyświetlaniem tego.
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.