Cenzura

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
i2av
Posty: 3
Rejestracja: sob gru 25, 2004 3:15 pm
Lokalizacja: Sieradz

Cenzura

Post autor: i2av »

Witam!
Podczas nauki php chciałem sobie zrobić proste ćwiczenie ale napotkałem trudność, z którą nie mogę się uporać. Zatem proszę o pomoc. Oto cenzor:


[php]<?php
@ $wp = fopen('cenzura.txt', 'rb');
if (!$wp) {
echo 'Błąd. Spróbuj innym razem.</body></html>'
exit;
}
$i = 0;
while (!feof($wp)) {
$cenzura[$i] = fgets($wp, filesize('cenzura.txt'));
$i++;
}
foreach ($cenzura as $element) {
echo $element.' '; // strona kontakt serwis http wyraz ten
}

$text = 'powiedziałem wyraz, a ten wyraz to wyraz.';
$text2 = str_replace($cenzura, 'cenzura', $text);
echo $text2; // powiedziałem wyraz, a cenzura wyraz to wyraz.
?>[/php]

Pobiera niecenzuralne słówka z pliku tekstowego do tablicy. Tu jest cały problem! Kiedy tworzę ręcznie tablicę ze słówkami to szafa gra, ale w powyższym kodzie cenzurowany jest tylko ostatni element z tablicy pomimo, że wszystkie elementy są poprawnie wyświetlane foreach'em! Także muszą istnieć. Nie mam pojęcia czym się różni utworzona tablica na podstawie pliku od utworzonej automatycznie przez skrypt.
Hawk
Przelotem
Przelotem
Posty: 209
Rejestracja: ndz gru 22, 2002 9:34 pm

Re: Cenzura

Post autor: Hawk »

Wrzuc funkcje str_replace do petli foreach i powinno dzialac jak trzeba.
flavio100
Nowy
Nowy
Posty: 48
Rejestracja: śr sie 17, 2005 5:08 pm
Lokalizacja: wuwua
Kontakt:

Re: Cenzura

Post autor: flavio100 »

dokladnie - petla foreach kreci sie DLA KAZDEGO i potem ustawia 'biezacy wskaznik' na ostatni element tablicy.
dlatego jak uzyjesz replace to bada tylko ostatnie slowo z tablicy.

staralem sie łopatologicznie;)
pzdr
i2av
Posty: 3
Rejestracja: sob gru 25, 2004 3:15 pm
Lokalizacja: Sieradz

Re: Cenzura

Post autor: i2av »

Dzięki. Czyli widocznie cała tablica jako pierwszy parametr nie jest odczytywana przez str_replace. Ciekawe jest to, że jak wrzucę jako parametr tablicę tekstu do ocenzurowania to obrobi całą, a tej rusza tylko bierzący element. :/
ODPOWIEDZ