Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Cenzura
marcin0077
post
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


Witam

Mam shoutboxa i zrobiona cenzurę. Cenzuruję wpisane słowa ale chciałbym zrobić ze np po znalezieniu zakazanego słowa skrypt cenzurował całą wiadomość.
Może ktoś pomóc?

kod cenzury

  1. function censor($str) {
  2. global $prefs;
  3.  
  4. $cWords = explode(',', $prefs['censorWords']);
  5. $words = explode(' ', $str);
  6. $endings = '|ed|es|ing|s|er|ers';
  7. $arrEndings = explode('|', $endings);
  8.  
  9. foreach ($cWords as $cWord) foreach ($words as $i=>$word) {
  10. $pattern = '/^(' . $cWord . ')+(' . $endings . ')\W*$/i';
  11. $words[$i] = preg_replace($pattern, str_repeat('*', strlen($word)), $word);
  12. }
  13.  
  14. $i = implode(' ', $words);
  15. $cen = array('********');
  16. $a = str_replace($cen, "", $i);
  17. return $a;
  18. }
Powód edycji: [blooregard]: Na przyszłość spójrz, co wrzucasz na forum, bo nie każdy tu jest pełnoletni [thek]: miałeś literówkę w $cen = array. Brak apostrofu zamykającego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Nie chodzi mi tutaj o to czy wszystkie słowa razem, bo to "rozumie się samo przez się". Pytałem się czy wszystkie wiadomości z shouta, czy tylko od pojedynczego usera. To co opisał phpion to rzadko używany 4 parametr wspomnianej funkcji. Zawiera on informację ile razy str_replace się wykonało w przetwarzanym ciągu. Jeśli w wyniku masz 0 to super - brak wulgaryzmow. Jeśli jest coś więcej to znaczy że wulgaryzm był. Jeśli censor jest uruchamiane dla każdej wiadomości z osobna to w wyniku wystarczy, że do zmiennej $a podepniesz informację, że wiadomość zawiera wulgaryzm i została ocenzurowana. jeśli censor od razu wszystkie wiadomości sprawdza to musisz tak kod zmodyfikować, by rozpoznawać osobne wiadomości.
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: 6.10.2025 - 09:13