Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [klasa] badWords.class5.php, informuje o badwords wg patternów ze stringu :)
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Klasa informuje o badwords i zlicza je:
http://phpfi.com/141000

przykład uzycia jest w załączniku ale podam jeszcze:
  1. <?php
  2. // instancja klasy
  3. $badWords = new badWords;
  4. // wprowadzny string
  5. $string = 'ku rwaaaaaaaa mac, chcesz w piz_de, w pier-dol Ci sie nie dostało kurw.a mać?!';
  6. // filtrujemy string
  7. $checkString = $badWords->checkString($string);
  8. // warunek na podstawie otrzymanych wników
  9. if($checkString[0])
  10. {
  11. echo'nie przeklinaj, '.$checkString[1].' przekleństw w Twoim ciągu znaków';
  12. }
  13. else
  14. {
  15. echo $string;
  16. }
  17. ?>


zapraszam do ocen... pisane z nudów (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) moze sie komus przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Athlan 15.08.2006, 19:02:56
Go to the top of the page
+Quote Post
Diablos
post
Post #2





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


Bad ereg ;p
Go to the top of the page
+Quote Post
hwao
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Fajny skrypt!

Proponuje tylko przestawic z eregi na preg_match sa okolo ~4 razy szybsze
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Przydalo by sie ladowanie tablicy wyrazow do obiektu a nie zapisywanie ich na sztywno w klasie.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Przyłączę się do dr_bonzo - dodaj obsługę źródeł danych. gdybys ta klase podpiął pod większą całość, to administrowac tymi słowami możesz teraz tylko z poziomu kodu.

Ogólnie podoba mi się (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Athlan
post
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


http://phpfi.com/141208

- wprowadzone dodawanie słów z poziomu kodu do tablicy oraz z dowolnego miejsca do bazy danych...
- sprawdzanie słów w bazie danych bądź w tablicy klasy

do badWords wykonujemy zapytanko:
  1. CREATE TABLE `badWords` (
  2. `badID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `badWord` VARCHAR( 50 ) NOT NULL ,
  4. PRIMARY KEY ( `badID` ) ,
  5. INDEX ( `badWord` )
  6. );


w kodzie możemy podać:
  1. <?php
  2. // dodanie patternu
  3. $badWords->newPattern(array('pizd.*'));
  4. ?>

dla dodanie do tablicy... no i pozostało jeszcze dodanie do bazy danych:
  1. <?php
  2. // dodanie patternu
  3. $badWords->newPattern(array('pizd.*'), $mysqlHandler);
  4. ?>


jeżeli chcemy sprawdzić czy słowa są w tabeli mysql, rozmy lekkie zmienki, do funkcji sprawdzającej słowa dodajemy tylko handler połączenia:
  1. <?php
  2. // filtrujemy string
  3. $checkString = $badWords->checkString($string, $mysqlHandler);
  4. ?>


oraz ustawiamy zmienną:
  1. <?php
  2. /*
  3.  * Ustawiamy, czy złe słowa mają być brane z tablicy $this->badWords, czy może z tabeli mysql
  4.  * 
  5.  * @access private
  6.  * @param bool
  7.  */
  8.  
  9. private $useDB = TRUE;
  10. ?>


pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

---EDIT---
no i kolejna zmianka bo zupełnie zapomniałem o pierwszej uwadze @hwao... no więc zamienione ereg na preg_match()

http://phpfi.com/141221

Ten post edytował Athlan 16.08.2006, 10:09:48
Go to the top of the page
+Quote Post
SHiP
post
Post #7





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


Bardzo fajna klasa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) lekka i działa jak nalezy... Problem tkwi w szczegółach (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Klasa nie obsluguje wyjątków typu
  1. <?php
  2. $string = 'nie podsłuchuj chłopcze!';
  3. ?>


Wywala przekleństwo ;]
Go to the top of the page
+Quote Post
Athlan
post
Post #8





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


@SHiP bardzo cenna uwaga... jak bede w domciu to dopisze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

no tak, ale można wywalić element "huj.*" z tablicy i bedzie grało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
chyba dla tego wyrazu są wyjątki, wieć nie trzeba go jako-tako filtrować

pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Speedy
post
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Bardzo fajna klasa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

ps. W tej tablicy warto także 'jeb.*' uwzględnić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Uniezaleznij sie od mysql'a, utworz druga klase odpowiedzialna za pobieranie listy slow z "jakiegos zrodla" (np. mysql) i niech zwraca te slowa jako tablice po wywolaniu

$zrodloSlow->getWords()
Go to the top of the page
+Quote Post
Athlan
post
Post #11





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


@dr_bonzo masz na myśli to, żeby pobrać słowa z jakiegokolwiek źródła tak? hmm nie tylko jest mysql, faktycznie. Dobra dodam, ale kazdy parsowanie XML lub innyc tam pliczków zwoich musi sobie sam dopisać po dziedziczeniu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

zmiany niedługo wprowadzę, pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

---EDIT---

tak właściwie to jest już to napisane (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) pobierasz sobie sam słowa z jakiegoś innego źródła i wlepiasz w funkcję w formie tablicy :
  1. <?php
  2. // dodanie patternu
  3. $badWords->newPattern( /* tablica */ );
  4. ?>

po krzyku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

trzeba pomyśleć jeszcze nad pewnego rodzaju wyjątkami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Athlan 16.08.2006, 13:46:14
Go to the top of the page
+Quote Post

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: 22.08.2025 - 16:26