![]() |
![]() |
-___- |
![]()
Post
#1
|
Goście ![]() |
Witam,
piszę sobie skrypt który mi będzie zamieniać wyrazy na ich odpowiedniki np. słowo ala zamieni mi na ala ma kota (coś jak cenzura). napisałem sobie wyrażenie
tyle tylko, że jeżeli $r['pattern'] = ala a w tekście jest np. w tartaku nie ma bala to słowo ala też zostanie zamienione ? chcę zrobić dopasowanie strict, czyli jeżeli ma zamieniać ala to ma zamienić ala a nie także bala. Jak ulepszyć to wyrażenie ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Poszukaj na forum bo już z kimś pisaliśmy cenzora, dosłownie parę dni temu więc powinien być na tej albo następnej stronie.
|
|
|
-___- |
![]()
Post
#3
|
Goście ![]() |
no właśnie przejrzałem najpierw kilka (5) stron z tego działu i nie znalazłem tego tematu. Proszę więc o pomoc.
Nadmienię, że moje wyrażenie zaczerpnąłem z IPB, ale wole się upewnić |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 142 Pomógł: 35 Dołączył: 5.12.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kiepsko szukałeś. Ostatnie wątki o cenzurowaniu to na przykład: Temat: PHPCenzura lub Temat: PHPCenzura.
Jeżeli natomiast chodzi o dokładne dopasowanie (takie jak opisujesz) to wyrażenie powinno uwzględniać znak poprzedzający (np.: spacja). Czyli powinno to wyglądać w następujący sposób:
Zapewne istnieje lepszy sposób ale w tej chwili mi nie przychodzi do głowy. Działa chyba poprawnie bo nie zamienia 'ala' w słowie 'balangę'. Wynik skryptu jest następujący: edit --> właśnie zauważyłem, że ucina znaki interpunkcyjne... a zatem trzeba to jeszcze dopracować. Ten post edytował barthpl 19.08.2008, 11:53:18 -------------------- Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
zamień na I powinno być dobrze |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ja bym raczej polecał coś bardziej konkretnego czyli jak we wcześniejszym wątku [PHP]Cenzor:
$str = 'ala ma ccc..ch.h.h.h.uoo.ooóouiii..i.jj..jaaaaaa'; echo preg_replace("/h(\.| |-)*(u|o|ó|(\.| |-))*(\.| |-)*(i|j|(\.| |-))*/i",'x',$str); Dzięki temu możemy sobie pisać słowo "chuj" jak tylko chcemy używając spacji podkreśleń kropek a i tak będzie działało ![]() Można rozbudować o system wyjątków takich jak podsłu czy coś. (Zaznaczam, że to działa z każdym słowem wystarczy tylko chwilkę się zastanowić, a żadne mistrz bluzgu nie wygra z nami ![]() Ten post edytował golaod 19.08.2008, 13:28:55 |
|
|
-___- |
![]()
Post
#7
|
Goście ![]() |
Mi nie jest potrzebne to do cenzurowania tylko do zamieniania na odpowiedniki jak pisałem w pierwszym poście, więc nie będzie żadnych wyrazów typu że jedna litera będzie specjalnie powielana, żeby filtr nie złapał czy coś. Nic z tych rzeczy
![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@golaod: zawsze wygra.
Zresztą zacytuję siebie z innego wątku: Cytat Chociaż wg mnie tworzenie cenzury jest bezcelowe... jeśli ktoś będzie chciał Ci nabluzgać to nabluzga (z tym, że zamiast PRZEKLENSTWO napisze PRZE KLE NSTWO). Jeśli komuś się zapomni co nieco, niech moderator wyedytuje treść, a delikfenta zbanować (dać ostrzeżenie)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 42 Dołączył: 12.08.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
@crozin skorzystaj może z mojego skryptu bo to co właśnie napisałeś... będzie łapane będzie również łapane powielanie liter,używanie . spacji podkreślenia myślnika a można dodać przecinki i inne rzeczy. uwzględnione jest też używanie o,ó zamiast u itd.
Ktoś kiedyś mądry powiedział "Wszystko jest do zrobienia". Dlatego jeśli chcemy popadać w skrajność to pisanie 444..uu..u.u.óó óo,oo.i.j nie ma sensu bo to już nie jest przekleństwo dlatego, że on sam je można powiedzieć ocenzurował. @osoba_która_założyła_topic Poza tym napisałeś, że chodzi Ci o "coś jak cenzura"(cytat z Twojej wypowiedzi pierwszej) zatem mi się nasunęło to. Warto go zmienić jeszcze na: $str = 'ala ma ccc..ch.h.h.h.uoo.ooóouiii..i.jj..jaaaaaa'; echo preg_replace("/(h(\.| |-)*(u|o|ó|(\.| |-))*(\.| |-)*(i|j|(\.| |-))*)/i",'xxxx',$str); czyli całe wyrażenie objąć jako atom dzięki temu zawsze będzie xxxx a nie różna ilość znaków x Ten post edytował golaod 19.08.2008, 14:06:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:52 |