Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przekleństwa
psychol1986
post 17.02.2012, 19:43:48
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
daniel1302
post 17.02.2012, 23:18:06
Post #2





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował daniel1302 17.02.2012, 23:18:31
Go to the top of the page
+Quote Post
psychol1986
post 18.02.2012, 18:04:39
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
erix
post 18.02.2012, 18:50:40
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No tak, tylko że wtedy będziesz miał cyrki, gdy ktoś napisze np. cechuje.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Point1
post 18.02.2012, 19:17:56
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.02.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Point1 18.02.2012, 19:20:08
Go to the top of the page
+Quote Post
konole
post 18.02.2012, 20:00:48
Post #6





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

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


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?
Go to the top of the page
+Quote Post
lobopol
post 18.02.2012, 20:55:07
Post #7





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Orzeszekk
post 18.02.2012, 21:02:11
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

Ostrzeżenie: (0%)
-----


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ć.


--------------------
"The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 19:47