ďťż

[PHP] Prosty system cenzury początki zawsze trudne

       

Podstrony


telcocafe

Elo,
napisałem takie cuś

<?php $tekst = 'różowe kwiatki rosną na łące'; $cenzura =array('różowe', 'kwiatki', 'łące'); $ile = count($cenzura); echo 'System cenzurowanie tekstu <br />'; echo '<br /> Oto tekst bez cenzury <br />'; echo $tekst; echo '<br /> Tekst po ocenzurowaniu <br />'; for ($i=0; $i<$ile; $i++) { if (strstr($tekst, $cenzura[$i])); $dlugosc = strlen($cenzura[$i]); $tekst = str_replace($cenzura[$i], substr($cenzura[$i], 0, 2). '***'.substr($cenzura[$i], $dlugosc-1), $tekst); } echo $tekst; ?>
Jak widać po wystąpieniu w tekście słowa z tablicy $cenzura następuje jego zamiana na pierwsze 2 znaki tegoż słowa, następnie 3 gwiazdki i ostatnia litera.
Jednak np dla wyrazu 'łące' 3 gwiazdki to już za dużo,
jak zrobić aby wyświetlało gwiazdki wg. wzoru długość - 3; np. łą*e - łące, kw****i - kwiatki.
Oraz pytanie nr 2.
Czy jest inna funkcja niż strstr(), która nie będzie zważać na wielkość liter?
Z góry dzieki za odpowiedzi.



str_pad('', $dlugosc - 3, '*')
PS Czemu służy to?if (strstr($tekst, $cenzura[$i]));
Odnośnie case sensitive, to używaj funkcji stristr i str_ireplace, ale w Twoim wypadku to trochę zepsuje wynik. Tutaj zmieniony Twój kod:
<?php $tekst = 'Różowe kwiatki rosną na łące'; $cenzura =array('różowe', 'kwiatki', 'łące'); $ile = count($cenzura); echo 'System cenzurowanie tekstu <br />'; echo '<br /> Oto tekst bez cenzury <br />'; echo $tekst; echo '<br /> Tekst po ocenzurowaniu <br />'; for ($i=0; $i<$ile; $i++) { if (stristr($tekst, $cenzura[$i])) { $dlugosc = mb_strlen($cenzura[$i], 'utf-8'); $tekst = str_ireplace($cenzura[$i], mb_substr($cenzura[$i], 0, 2, 'utf-8').str_pad('', $dlugosc - 3, '*').mb_substr($cenzura[$i], $dlugosc-1, 1, 'utf-8'), $tekst); } } echo $tekst;
I wynik:
System cenzurowanie tekstu

Oto tekst bez cenzury
Różowe kwiatki rosną na łące
Tekst po ocenzurowaniu
ró***e kw****i rosną na łą*e

Użytkownik andrzej_aa edytował ten post 05 maj 2010, 21:00
w sumie działa,
dzęki.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.