Jak cenzurować wypowiedzi i brzydkie słowa na forum, PHP Skrypty


[PHP] Jak cenzurować wypowiedzi i brzydkie słowa na forum?

0x01 graphic

Chcesz wyeliminować niecenzuralne słowa. System cenzurowania jest bardzo przydatny i eliminuje większość nieodpowiednich słów na forum dyskusyjnym lub w innych publicznych miejscach. Bardzo łatwo można go rozbudowywać o kolejne słowa i zwroty umieszczone np. w zewnętrznym pliku.

0x01 graphic

Musisz stworzyć mini-słownik niecenzuralnych słów. Wybrane słowa możesz umieścić w tablicy, aby następnie sprawdzić wpisywany tekst i w miarę potrzeby wyeliminować je z wypowiedzi za pomocą wyrażeń regularnych. Oto gotowy kod programu:

<?

$txt="A gówniarze znowu przeklinają, shit!";

$c = array(

"g(o|ó)wn(i.*?|o.*?|)",

"shit"

);

for ($i=0; $i<count($c); $i++)

$txt = preg_replace("/(\W|^)$c[$i](\W|$)/i", " [cenzura] ",$txt);

echo $txt;

?>

W wyniku działania skryptu otrzymamy zdanie:

A [cenzura] znowu przeklinają, [cenzura]!

Przykład jest może mało estetyczny, ale tak najłatwiej pokazać, w jaki sposób radzić sobie z niecenzuralnymi słowami. Jakkolwiek by tutaj nie kombinować, nie można pozbyć się całkowicie niecenzuralnych słów. Skrypt ma jedynie za zadanie przypominać użytkownikom, że nieco się zagalopowali. Gdy będą chcieli "nabluzgać", skrypt ich nie powstrzyma - wystarczy, że zmodyfikują nieco wyrazy lub wstawią pomiędzy litery inne znaki.

Rozwiązanie sprawdza się doskonale w praktyce - po zastosowaniu skryptu pozbyłem się praktycznie całkowicie niecenzuralnych słów z wszelkich dyskusji dostępnych publicznie.

Program wykorzystuje tablicę z wyrażeniami regularnymi, które dopasowują niecenzuralne zwroty. Funkcja preg_replace() zamienia "brzydkie wyrazy" na łańcuch [cenzura], który pojawia się w ich miejsce. Warto poświęcić kilka zdań na opisanie konstrukcji wyrażeń regularnych.

Wyrażenie (\W|^) dopasowuje znaki niealfanumeryczne i początek linii, następnie dopasowywany jest niecenzuralny wyraz, a na koniec (\W|$), czyli też znaki niealfanumeryczne i koniec linii. System wyłapuje całe wyrazy, które mają przed sobą i za sobą spację lub koniec/początek linii. Dzięki temu cały wyraz zastępowany jest słowem [cenzura], a nie tylko jego niecenzuralny fragment. Wygląda to estetycznie, nawet gdy widać wiele słów [cenzura].

Warto przemyśleć budowę wyrażenia regularnego w tablicy słów niecenzuralnych. Nie musisz wypisywać kilkanaście odmian tego samego słowa. Wystarczy, że skonstruujesz zaawansowane wyrażenia pasujące do różnych wariacji tego samego słowa.

Trzeba jednak uważać, aby nie wykluczyć przez przypadek słów cenzuralnych, które mogą zawierać niechciane zwroty bo potem może dojść do sytuacji, gdzie pewna grupa ludzi zamiast się "zakochiwać" teraz się "zakofuje". Po prostu nie mogli inaczej napisać tego słowa, aby nie podpaść źle napisanemu cenzorowi.



Wyszukiwarka

Podobne podstrony:
Jak zrobić przekierowanie z jednej strony na drugą, PHP Skrypty
jak w grafice zmienic wybrane kolory na inne, PHP Skrypty
Jak zamienić tekst na grafikę, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
jak miedzy stronami przesłać zmienne korzystajac z sesji, PHP Skrypty
Jak zrobić licznik pobrań plików ze strony, PHP Skrypty
jak wypisac zawartosc bazy danych dBase (dbf), PHP Skrypty
Jak wygenerować statyczny plik .html z bazy danych, PHP Skrypty
jak samodzielnie obliczyc numer dnia w dowolnym roku, PHP Skrypty
Jak odbierać dane pochodzące z różnych pól formularza, PHP Skrypty
Jak wysłać list do grup dyskusyjnych USENET, PHP Skrypty
jak stworzyc licznik klikniec ze statystyka dzienną, PHP Skrypty
jak wykonac strone z logowaniem do innej strony, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak zrobić stronę dostępną na hasło tylko dla wybranych użytkowników, PHP Skrypty
Jakie slowa ludzie najczesciej wypowiadaja przed smiercia, !!!Na Wesoło-HUMOR-DOWCIPY-ŚMIESZNE
Jak chronić adres e-mail na stronie przed spamem stosując przekierowanie, PHP Skrypty
Jak pokazać i skąd wziąć imieniny przypadające na aktualny dzień, PHP Skrypty
Jak wypisać na ekranie w PHP zawartość dowolnej tabeli, PHP Skrypty

więcej podobnych podstron