Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 2 Dołączył: 1.10.2003 Ostrzeżenie: (0%)
|
witam ... mam system komentarzy ... chce zrobic cenzure ...
problem moj jest nastepujacy : komentarze sa pobierane z bazy ... slowa do cenzurowania rowiez ... probowalem to zrobic w taki sposob: [php:1:d32b4a1ae2] <? // petla pokazywania komentarzy ... to dziala OK while($c = mysql_fetch_array($comm)) { echo $c['nick']; echo ' - '; echo $c['date']; echo '<br>'; // tutaj chcialem zrobic aby mi cenzurowalo wpis ... probowalem zastosowac petle w petli ... ale tutaj jest problem gdyz nie cenzuruje textu :/ najprawdopodobniej nie pobiera slow z bazy bo jak usune petle i wstawie wlasne slowa to jesy OK ... while($cen = mysql_fetch_array($cen2)) { $c['text'] = str_replace ($cen['slowo'], $cen['zamien'], $c['text']); } echo $c['text']; } ?> [/php:1:d32b4a1ae2] zapytania sa dobre ... w bazie slowa mam w sposob: id slowo zamiennik 1 bla ble 2 he heeh |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Może :arrow: [manual:12b57a0b7e]str_replace[/manual:12b57a0b7e]().
[php:1:12b57a0b7e]<?php // tu ma być tablica tekst z tekstem do zcenzurowania $co = array("wulgaryzm1", "wulgaryzm2"); $x = "[cenzura]"; for ($i=0; $i<=count($tekst); $i++) { echo str_replace($co, $x, $tekst[$i]); } ?>[/php:1:12b57a0b7e] Pisałem z palca więc coś mogło mi się machnąć. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2003 Ostrzeżenie: (0%)
|
Radziłbym cenzurować przed dodaniem, ponieważ robisz tą samą akcję tylko raz, natomiast gdybyś chcaił zaraz po pobraniu to każdy będzie musiał wykonywać fukcję cenzurującą.
|
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 197 Pomógł: 0 Dołączył: 9.09.2003 Skąd: z Marsa Ostrzeżenie: (0%)
|
a ja proponuje wybrac słowa cenzurowane tylko raz i wrzucić je do tablic:
np $co i $naco po czym używać ich w każdym poście i zmieniać te wyrazy. poprzez normalnie str_replace() Nie przedłuża to znacząco czasu wykonywania skryptu a na pewno zmniejsza ilosć zapytań pobierających cenzure z bazy przy każdym poście (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdro |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Simpson, chodziło Ci chyba o taki kod jaki podałem :?:
|
|
|
|
Post
#6
|
|
|
Grupa: Przyjaciele php.pl Postów: 197 Pomógł: 0 Dołączył: 9.09.2003 Skąd: z Marsa Ostrzeżenie: (0%)
|
Cytat Simpson, chodziło Ci chyba o taki kod jaki podałem :?:
No coś w tym stylu. Aczkowiek. Gdyby zrobić to tak że do każdego wyrazu jest przypisany wyraz zastępczy to można by sie pozbyć pętli (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdro |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Pętla służy do zamiany stringów, które sš przechowywane w tablicy, a wulgaryzmy zamieniane sš tylko raz dla każdego ze stringów.
Czyli o to Ci chodzi: [php:1:a4abcaf6a9]<?php $tekst = "wulgaryzm1 kjfaidoond wulgaryzm2"; $co = array("wulgaryzm1", "wulgaryzm2"); $x = "[cenzura]"; echo str_replace($co, $x, $tekst); ?>[/php:1:a4abcaf6a9] |
|
|
|
Post
#8
|
|
|
Grupa: Przyjaciele php.pl Postów: 197 Pomógł: 0 Dołączył: 9.09.2003 Skąd: z Marsa Ostrzeżenie: (0%)
|
NO dokładnie..
Nigdy nie bawiłęm sie ze str_replace w ten sposob że jest jedna tablica i jeden string.. i wszystkie elementy z tablicy zamieni na ten string więc nie wiedziałęm czy w tą strone zadziała (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdro |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 2 Dołączył: 1.10.2003 Ostrzeżenie: (0%)
|
Cytat Radziłbym cenzurować przed dodaniem, ponieważ robisz tą samą akcję tylko raz, natomiast gdybyś chcaił zaraz po pobraniu to każdy będzie musiał wykonywać fukcję cenzurującą.
Dobry pomysł ... ale to i tak nie rozwiazuje mojego problemu ... bo i tak mi zamienia tylko slowo ostatnio dodane do bazy ... o najwiekszym id ... :/ zapytania mam takie [php:1:1b21600346] <? $cen1 = "SELECT * FROM censure"; $cen2 = mysql_query($cen1); ?> [/php:1:1b21600346] nastepnie petla pobieram slowa: [php:1:1b21600346] <? while($cen = mysql_fetch_array($cen2)) { $slowo = $cen[slowo]; $zamien = $cen[zamien]; } ?> [/php:1:1b21600346] i probuje zamienic ew. przeklenstwa na odpowiedni zamiennki [php:1:1b21600346] <? $text = str_replace ($slowo, $zamien, $text); ?> [/php:1:1b21600346] ale tak jak jush pisalem zamienia mi sie tylko slowo ktore bylo najpozniej dodane do bazy... pomocy :/ probowalem roznie to zmieniac ale nic nie wychodzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Nie bardzo wiem, o co Ci chodzi.
Podałem Ci już jak to ma wyglšdać. O to Ci chodzi: :?: [php:1:7e9b88d718]<?php $co = array("wulgaryzm1", "wulgaryzm2"); // lista wulgaryzmow do zamiany $x = "[cenzura]"; // na jaki wyraz ma zamieniac wulgaryzmy $cen1 = "SELECT * FROM censure"; $cen2 = mysql_query($cen1); while($cen = mysql_fetch_array($cen2)) { echo str_replace($co, $x, $cen['slowo']); } ?>[/php:1:7e9b88d718] |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 2 Dołączył: 1.10.2003 Ostrzeżenie: (0%)
|
nie ...
chodzi mi o to zeby wulgaryzmy i slowa na jakie ma zamieniac byly pobierane z bazy ... sa one tam umieszczone w postaci : id slowo zamiennik 1 przeklenstwo cenzura 2 kurcze kur*** 3 cholera cho**** kod ktory podalem wyzej dziala ale nie do konca gdyz zamienia mi tylko wulgaryzm na odpowiednie z najwiekszym id w bazie ... reszty nie zmienia :/ |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Już wiem o co Ci chodzi.
Zamień to: [php:1:1eee9ecb5b]<?php while($cen = mysql_fetch_array($cen2)) { $slowo[] = $cen['slowo']; $zamien[] = $cen['zamien']; } ?>[/php:1:1eee9ecb5b] |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 2 Dołączył: 1.10.2003 Ostrzeżenie: (0%)
|
dziala !! naprawde wielkie dzienki ...
PS: setny punkt pomocy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) gratuluje (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%)
|
Nie ma za co! :wink:
PS. Dzięki. |
|
|
|
Post
#15
|
|
|
Grupa: Przyjaciele php.pl Postów: 197 Pomógł: 0 Dołączył: 9.09.2003 Skąd: z Marsa Ostrzeżenie: (0%)
|
i pomyśleć że ten pukcik bym zdobyłja gdybym odrazu podal swoje rozwiązanie zamiast wspierać Majdan'a (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
hehe Pozdro |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 20:19 |