Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Filtr słowa - wyłapanie!
Forum PHP.pl > Forum > Przedszkole
ktosz
witam,
kiedys cos tam grzebalem i mam cos takiego:

  1. if (ereg("#kurwa#is",$_POST['textek']) || ereg("#chuj#is",$_POST['textek'])) {
  2. echo "nie przeklinaj!";
  3. }


kiedyś bodajrze jakoś mi to działało, ale teraz już nie... jak wyłapać jak ktoś w FORM'ie pisze np ciąg liter "kurw"?
pzdr
Fifi209
Po pierwsze używa się teraz: preg_match i preg_match_all

Po drugie bezsensowna walka.
Pawel_W
Cytat(fifi209 @ 9.08.2009, 11:29:43 ) *
Po pierwsze używa się teraz: preg_match i preg_match_all

Po drugie bezsensowna walka.

Popieram, mam coś takiego w grze, że czasem filtruje mi nawet słowa, które nie są przekleństwami i jest to naprawdę uciążliwe

jeżeli to jest jakiś czat, to sam go sprawdzaj i dawaj bany, wtedy może się oduczą winksmiley.jpg
ktosz
Dobrze, super, ale może ktoś mi pomoże rozwiązać problem snitch.gif?
Pawel_W
http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych

masz tam przykład, który sprawdza czy podana wartość jest cyfrą winksmiley.jpg

przekręć trochę i sprawdzi, czy to przekleństwo winksmiley.jpg
ktosz
a czy nie byłoby szybciej zrobić tego jakoś w tablicy??
Fifi209
Cytat(ktosz @ 9.08.2009, 10:43:04 ) *
a czy nie byłoby szybciej zrobić tego jakoś w tablicy??


A jak z tekstu:

Blea sg dfg rg dfvg 2435 dfg , gasdfg :sfg ńśę wyłapiesz teraz ch*j asdf mrty sdl sdfl

Jak wyłapiesz ch*j ?

Będziesz sprawdzał słowo po słowie? in_array ? A jak ktoś tak napisze ch.uj ?
zeten
  1. if (eregi("kurwa",$_POST['textek']) || eregi("chuj",$_POST['textek'])) {
  2. echo "nie przeklinaj!";
  3. }


eregi();
Fafu
Taka funkcja już nie wiem skąd, może ci się przyda:
  1. function cenzura($tekst){
  2. $przeklenstwa = array('bit(h|ch)', '(ch|h)(w|.w)(d|.d)(p|.p)', '(|o)cip', '(|o)(ch|h)uj(|a)', '(|do|na|po|do|prze|przy|roz|u|w|wy|za|z|matkojeb)jeb(|a|c|i|n|y)', '(|do|od|o|s|wy|za)pieprz(|e|n|on|a|y)', '(|do|na|naw|od|pod|po|prze|przy|roz|spie|roz|poroz|s|u|w|za|wy)pierd(a|o)', 'fu(ck|k)', '(|po|s|w|za)(ku|q)rw(i|y)', 'k(ó|u)rw', 'k(ó|u)tas', '(|po|wy)rucha', 'motherfucker', 'piczk', '(|w)pi(z|ź)d');
  3.  
  4. $count = count($przeklenstwa)-1;
  5.  
  6. for ($i=0; $i<=$count; $i++) {
  7. $przeklenstwa[$i] = '@ '.$przeklenstwa[$i].'([^ ]+)?@i ';
  8. }
  9. return substr(preg_replace( $przeklenstwa, ' *****', ' '.$tekst ), 1);
  10. }
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.