W skrócie ma on mniejwięcej taką postać:
<? "/(w|wy|za)*kurw(o|y|a|ić|iać|ać|iony|iona|ione|ieni)*/i", "/kuta(s|sa|sy|fon|fony|fonów)+/i", "/(u|wy|za|prze|przy|pod)*dup(a|y|as|ić|ny|ne|ną|iony|ione|ioną|ionego|ionych|sko|skiem|cia|cie|czyć|eczk
a eczki|encja|czyć|odajka)*/i", "/dziw(ka|ki|ką|kę|kom|ce|eczka|eczce|eczką|eczkę|eczkom)+/i" ); ?>
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:
<?php "/(u|wy|za|prze|przy|pod)*dup(a|y|as|ić|ny|ne|ną|iony|ione|ioną|ionego|ionych|sko|skiem|cia|cie|czyć|eczk
a eczki|encja|czyć|odajka)*/i" ?>
coś w stylu:
<?php "/(u|wy|za|prz(e|y)|pod)*dup(a|y|as|ić|n(y|e|ą)|ion(y|e|ą|ego|ych)|sk(o|iem)|ci(a|e)|czyć|eczk(a|i)|encja|czyć|odajka)*/i" ?>
