Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekleństwa
Forum PHP.pl > Forum > PHP
psychol1986
Witam, dodałem ostatnio do swojego bloga filtorowanie słów za przekleństwami. Jednak zmagam się jeszcze z jednym problemem, mianowicie jak ktoś wpisze "jakiskurwabluzg" jak mogę wyłapać to brzydkie słowo? Z góry przepraszam za przekleństwo ale niestety muszę jakoś zobrazować swój przykład. Bedę więdzięczny za pomoc.
daniel1302
Np za pomocą takiego wyrażenia
Kod
/^(.*)?(ku*wa)?(.*)?$/


Kod
if(preg_match('/^(.*)?(kurwa)?(.*)?$/', $tekst))
echo 'przekleństwo';


musisz zastosować preg_replace

Ale nie będe ukrywał, że nie bardzo potrafie posługiwać się tą funkcją. Musiałbym kombinować pare razy aby się nauczyć.
psychol1986
Witam, niestety nie znam się na wyrażeniach regularnych :/ ale to co podałeś nie dziala:

  1. if(preg_match('/^(.*)?(chuj)?(.*)?$/', 'jakiskurwabluzk')){
  2.  
  3. echo preg_replace('/^(.*)?(nic)?(.*)?$/', '***', 'jakiskurwabluzk');
  4. }


If przechodzi pomimo tego że nie ma tego wyrazu w szukanym słowie, i preg_replace też działa więc nie to chodzi. Idealnie też byłoby żebym mógł zastąpić tylko przekleństwo a nie cały wyraz.
erix
No tak, tylko że wtedy będziesz miał cyrki, gdy ktoś napisze np. cechuje.
Point1
Nie wiem, na ile to będzie w dobrym stylu, ale można by zrobić coś takiego:
  1. $arrayBluzgow = array('bluzg1', 'bluzg2');
  2. $bluzgiRE = implode('|', $arrayBluzgow);
  3. echo preg_replace('/[\w]*(' . $bluzgiRE . ')[\w]*/i', '***', $bluzgString);


A poza tym to witam tongue.gif

PS. Żeby nie cenzurować "dowcipnych" wyrazów, można użyć lookbehinda: /(/?<!wyma)chuj/ dla wymachuje, /(?<!dow)cip/ dla dowcipów itd.
konole
Nic na siłę, zrób podstawy, a jak ktoś usilnie omija blokady, to się banuje. Bo inaczej, to nie wygrasz z wszystkimi przypadkami.

"kurwa, kierwa, kurffa, qrwa" i tak w nieskończoność można odmieniać, tylko po co?
lobopol
Dodatkowo dowolny wyraz można zapisać w taki sposób aby wyglądał identycznie, używając znaków z innych języków, są nawet stronki które ci podmieniają losowe znaki na ich odpowiedniki, w gruncie rzeczy jedyna opcja to banowanie.
Orzeszekk
http://www.solmetra.com/scripts/regex/

powinno pomoc w konstruowaniu wlasnych wyrazen regexp.

konstruujesz wyrazenie i testujesz nimi różne frazy. Równie dobrze moglbys uzyc testow jednostkowych jesli umiesz z nich korzystać.
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.