[PHP]Cenzura |
[PHP]Cenzura |
11.08.2008, 10:37:10
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 24.08.2007 Skąd: Białystok Ostrzeżenie: (0%) |
Witam mam takie pytanie pisze skrypt który ocenzuruje mi słowa wulgarne.
zastanawiałem się jak to zrobić wykorzystam do tego funkcje str_replace i by to wyglądało tak:
tylko zamiast wulgarneslowo1 bylo by przekleństwo które zostanie zamienione na !cenzura! ale takie wstawianie jest monotonne po prostu długo się wstawia. moje pytanie czy nie da się tego zrobić tak że np. Że utworze plik txt a w nim wulgaryzmy jeden pod drugim: Kod wulgarneslowo1 wulgarneslowo2 wulgarneslowo3 wulgarneslowo4 wulgarneslowo5 wulgarneslowo6 wulgarneslowo7 i tak dalej i potem skrypt pobierze te słowa i wstawi je sam do funkcji str_replace? -------------------- eeeeee.... |
|
|
11.08.2008, 10:40:10
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) |
Da się jak najbardziej. Poczytaj sobie w manualu o plikach (fopen, file_get_contents, file itd), potem pobierz sobie wszystkie słowa z pliku do tablicy, bo przecież str_replace może jako argumenty przyjmować tablice
|
|
|
11.08.2008, 10:46:55
Post
#3
|
|
Grupa: Zarejestrowani Postów: 403 Pomógł: 68 Dołączył: 20.03.2008 Ostrzeżenie: (0%) |
Powinno działać -------------------- Pomogłem? wyraź to i kliknij "Pomógł"
|
|
|
11.08.2008, 11:32:41
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 24.08.2007 Skąd: Białystok Ostrzeżenie: (0%) |
a jeżeli moja baza zawiera 2145 słowa czy przy wykonywaniu skryptu nie obciąży to serwera?
-------------------- eeeeee.... |
|
|
11.08.2008, 11:41:30
Post
#5
|
|
Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) |
Możesz to zrobić podobnie jak wyżej z małym ale.
Ładujesz cały plik poprzez file. Masz go już w tablicy Pamiętaj że na końcu każdego wiersza masz znak kończący więc musisz się go pozbyć. Ale lepiej byłoby zamienić całą tablicę wczytaną przez file JEDNYM str_replacem a nie wykonywanym tysiące razy. Skoro robisz to samo i możesz to zrobić prościej rób to. Zresztą koledzy wyżej dali Ci przykład i w oparciu o to zbuduj własny system. Kod f1xer'a nie działa bo wali się to na znaku końca linii jak mówiłem. (działa tylko na ostatnim słowie po którym nie ma entera) Ten post edytował klocu 11.08.2008, 11:45:27 |
|
|
11.08.2008, 11:52:08
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 24.08.2007 Skąd: Białystok Ostrzeżenie: (0%) |
może jest proste ale ja np nie wiem prostej rzeczy po co w przykładzie który podał f1xer na końcu echo $tekst;? to do tego aby mi wyświetliło ocenzurowany tekst? i dlaczego tam nie ma takiego czegoś na początku jak :
? Możecie dać "jaśniejszy" przykład ? i cos nie tak z tym kodem f1xer pobiera tylko jeden wyraz Ten post edytował Wredny 11.08.2008, 11:54:08 -------------------- eeeeee.... |
|
|
11.08.2008, 11:56:10
Post
#7
|
|
Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) |
To jest proste. To są podstawy w manualu. Nie ma fopen bo jest file (wczytuje cały plik do tablicy - każdy rząd nowym rekordem).
Echo jest do wyświetlenia. Patrząc od strony optymalizacji, można to wczytać poprzez file, obciąć białe znaki i nadpisać tablicę, ale robić to za każdym razem - serwer Ci się spoci. Ten kod nie pobiera jednego wyrazu, tylko serię wyrazów. |
|
|
11.08.2008, 12:00:21
Post
#8
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 24.08.2007 Skąd: Białystok Ostrzeżenie: (0%) |
no dobra ale dlaczego to mi cenzuruje tylko ostatnie słowo? z pliku txt?
Ten post edytował Wredny 11.08.2008, 12:05:42 -------------------- eeeeee.... |
|
|
11.08.2008, 16:00:11
Post
#9
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 11.07.2008 Skąd: СССР Ostrzeżenie: (0%) |
Tylko pamiętaj by przed słowem takim jak np. (TYLKO PRZYKŁAD!) chuj dać spację. Jeśli tak nie zrobisz gdy ktoś napisze nie podsłuchuj, wyświetli się "nie podsłu!cenzura!". Taka mała rada na przyszłość.
-------------------- |
|
|
11.08.2008, 16:23:25
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
|
|
|
-___- |
19.08.2008, 11:28:51
Post
#11
|
Goście |
Cytat Tylko pamiętaj by przed słowem takim jak np. (TYLKO PRZYKŁAD!) chuj dać spację. Jeśli tak nie zrobisz gdy ktoś napisze nie podsłuchuj, wyświetli się "nie podsłu!cenzura!". Taka mała rada na przyszłość. Czyli jeżeli dobrze rozumiem. mam słowo ala, które ma mi zamienić na kasia, aby słowa bala mi nie zamieniło na bkasia musze przed ala dać spację czy źle rozumiem Pattern musi zaczynać się od spacji, aby dopasowanie było strict a nie loose czy może da się to zastąpić inaczej, bo ja mam preg_replace początkowo do tego użyty ale nie chciałbym dodawać za każdym razem spacji na początek bo łatwo można o tym zapomnieć. PS. takie dodatkowe pytanie lepiej pattern i replace trzymać w bazie czy lepiej walnąć sobie to w XML |
|
|
19.08.2008, 11:58:59
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
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) Cytat PS. takie dodatkowe pytanie lepiej pattern i replace trzymać w bazie czy lepiej walnąć sobie to w XML W czym Ci wygodniej (mi osobiście byłoby w bazie danych). Zawsze możesz zrobić cache'a tego.
|
|
|
--mateomm-- |
21.08.2008, 14:24:20
Post
#13
|
Goście |
W aktualnej formie skryptu do cenzurowania, jaki podany jest wyżej każde wystąpienie słowa wulgarnego będzie cenzurowane. A czy jest możliwe, aby nasze wyrażenie regularne nie cenzurowało słowa będącego linkiem ?
mam np tekxt... <a href="#">abc wylgaryzm abc</a> ..., text chciałbym aby w tekście słowa mi cenzurowało, ale w linku nie. Czy jest to możliwe ? Moge liczyc na Wasza pomoc ? Z gory bardzo dziekuje i pozdrawiam M |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 03:50 |