![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Mam problem ze zrobieniem cenzora.
Chodzi o coś takiego, że mam plik cenzor.txt Zawartość tego pliku przerzucam do tablicy. A potem chce by każdy element tej tablicy zamieniał na #CENZOR Próbowałem tak:
Liczę na waszą pomoc. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli w $plik masz po prostu tablicę słow to wystarczy:
O to chodziło? To w sumie jest to samo co napisałeś. Ale nie napisałeś do końca w czym problem/co nie działa... -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
chodzi o to że nie zamienia tego brzydkiego wyrazu na cenzor
![]() z twoim kodem też nie zamienia, pokazuje to samo zdanie co w zmiennej z |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 377 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co nie zmienia faktu że robienie takiej cenzury zazwyczaj nie ma żadnego sensu. Zaraz zacznie się obchodzenie przez dowolne znaki albo zapis podobny fonetycznie.
http://php.net/manual/en/function.levenshtein.php -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
być może, na początek jednak wystarczy, potem przerzucę się na twoją funkcję, jak ją ogarnę
jednak nurtuje mnie co w moim kodzie jest źle ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To prawda - zgadzam się z przedmówcą. Pomogę jednak
![]() Autorze - sprawdź koniecznie kodowanie obu plików czyli tego cenzor.txt i skryptu w jakim to odpalasz. Dobrze by było też sprawdzić te dane które wrzucasz do cenzurowania. Wszystko musi mieć to samo kodowanie. Po drugie sprawdź co dokładnie zawiera tablica $plik - może plik jest źle zrobiony i w tej tablicy są bzdury. -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
poprawiłem kodowania na te same, dalej nic
sprawdziłem co zawiera ten plik oczywiście wcześniej: brzydkie słowo1 brzydkie słowo2 brzydkie słowo3 więc niby powinno być ok chyba że nie mogę wykorzystać str_replace do zamiany elementu z tablicy na string |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Możesz. Sprawdź jeszcze w ten sposób, że utwórz tablicę PHP i wpisz do niej te brzydkie słowa - zamiast ładować je z pliku. Tak dla testu.
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
kiedy zrobiłem tak:
to działa Więc co jest nie tak jak wczytuje z pliku? |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
print_r($plik); i zobacz czym różnią się te tablice.
-------------------- :)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Array ( [0] => słowo1 [1] => słowo2 [2] => słowo3 ) - zwykła tablica Array ( [0] => ďťżsłowo1 [1] => słowo2 [2] => słowo3 ) - z pliku Ale nawet jak dałem inne słowo do cenzury w przypadku w wersji z pliku, to też nie zamienia tego słowa na cenzor może tego nie da się technicznie zrobić? Ten post edytował kaiba55 27.09.2012, 12:16:40 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Użyj funkcji trim($klucz).
-------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
kod wygląda teraz tak:
Ale niestety dalej nic to nie dało.. Ten post edytował kaiba55 27.09.2012, 12:22:56 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
może tego nie da się technicznie zrobić? Da się. Wszystko się da. Z wyjątkiem (że wejdę na tematy wojskowe) tego, że nie da się okopać się w wodzie i nie da sie odkręcić orzełka od hełmu. A do Twojego problemu, w dziś zaprezentowanym kodzie masz A (skoro operujesz na tablicach) powinno chyba być: I na wszelki wypadek zrezygnuj (przynajmniej na czas testów) z polskich diakrytyków i ogranicz się do używania liter z zakresu US-ASCII. |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Bo nie dodałeś indeksu, do $plik:
a jakby nie było to jednak tablica. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
tak też próbowałem już wcześniej i dalej nic
słowa w pliku tekstowym są małą literą i bez polskich znaków edit: b4rt3kk twój sposób też na nic Ten post edytował kaiba55 27.09.2012, 12:27:16 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 377 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zapisz jeszcze raz plik bez BOM (te 3 pierwsze znaki które wkleiłeś). Poszukaj ustawień edytora żeby to wyłączyć.
-------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ja bym stawiał dalej na kodowanie - coś musi być w tym pliku "cenzor.txt" z kodowaniem nie tak... Spróbuj to przerzucić może do zwykłego notatnika, utwórz tamten plik na nowo z kodowaniem takim jak skrypt/dane i wklej lub coś w ten deseń.
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 0 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
niestety nie do końca wiem jak to zrobić, jest w notatniku taka opcja?
jak coś korzystam z pspad, ale totalnie nie wiem gdzie to znaleźć ten plik cenzor.txt zrobiłem w notatniku oba moje pliki mają kodowanie UTF-8 Ten post edytował kaiba55 27.09.2012, 12:33:28 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
To zadziała:
Zauważ, że po wyświetleniu var_dump tablicy z pliku pierwszy wiersz ma 2 nadprogramowe znaki. EDIT: Poprawka, wiem gdzie jest błąd. Otóż tak: 1. pierwszy obrót pętli, do $f przypisujemy 'napis a potem brzydkie1 <br>', ciąg zostaje zamieniony na 'napis a potem #CENZURA <br>' 2. po czym następuje kolejny obrót pętli, gdzie do $f znów przypisany jest ciąg 'napis a potem brzydkie1 <br>', więc ocenzurowany tekst znów jest w pierwotnej wersji. 3. jako wynik otrzymujemy więc 'napis a potem brzydkie1 <br>' tak więc cenzuruje w pętli po jednym wyrazie, po czym znów mamy ciąg pierwotny i zostanie ocenzurowany tylko ten wyraz, który występuje pod ostatnim indeksem w pętli. Poprawny kod:
Ten post edytował b4rt3kk 27.09.2012, 13:06:12 -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 16:52 |