![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Napisałem sobie skrypt cenzurujący, który gwiazdkuje pasujące do wzoru wyrazy.
W skrócie ma on mniejwięcej taką postać:
Pytanie brzmi: Jak najlepiej przerobić ten kod, żeby otrzymać funkcję która nie będzie modyfikowała wprowadzonego tekstu a wykrywała tylko obecność zakazanych słów i zwracała w takim przypadku true, lub false gdy tekst jest czysty? Czy najlepiej będzie użyć eregi w pętli, czy też może coś innego?? I jeszcze jedno pytanie - Czy powyższe reguły można jeszcze bardziej uprościć? Czy można zagnieżdżać warunki w regułach?? tj. np. zamiast:
coś w stylu:
![]() Ten post edytował neverever 17.04.2008, 12:07:56 -------------------- neverever
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Hmm... in_array ? Ale czy da się to in_array jakoś rozsądnie połączyć z tymi wyrażeniami regularnymi?? -bo jakoś nie mam na to pomysłu :-/ No i nadal bez odpowiedzi pozostaje moje drugie pytanie, czy taki "zagnieżdżony" zapis wyrażenia regularnego jest poprawny ...ewentualnie jak uprościć moje wyrażenia? -------------------- neverever
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
preg_match();
preg_match_all(); -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
preg_match(); preg_match_all(); Może się myle, ale te funkcje na wejściu przyjmują chyba tylko parametry typu string a zwracają wynik w postaci tablicy ...czyli musiałbym i tak w pętli im zapodawać kolejno moje reguły i każdorazowo sprawdzać czy coś znalazły czy nie. No ale może się myle? -------------------- neverever
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy sprawdzić czy preg_match nie zwróciło 0. Jeżeli nie to znaczy, że tekst zawiera wyrażenie w sobie. Pozdrawiam!
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
Wystarczy sprawdzić czy preg_match nie zwróciło 0. Jeżeli nie to znaczy, że tekst zawiera wyrażenie w sobie. Pozdrawiam! Czyli:
gdzie $slowo -to moja tablica z regułami, a $txt -to tekst do sprawdzenia. Czy tak? Ten post edytował neverever 17.04.2008, 12:07:29 -------------------- neverever
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym zrobił to tak:
w sumie tablicę z wyrażeniami można dać na sztywno w funkcji. I używać jej w banalny sposób:
Ten post edytował ayeo 17.04.2008, 12:33:18 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:06 |