Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wulgaryzmy na stronie
Forum PHP.pl > Forum > Przedszkole
-kaznodziej/ka-
Otóż pewnego pięknego dnia pewna piękna blondynka wpadła na pomysł, aby wszystkie wylgaryzmy na stronie zostały nadpisane słowem:-brzydkie_słowo-.. lub(i) (lub i też! wink.gif) dodatkowo zapisywały ilość brzydkich słów w pliku lub tudzież gdziekolwiek wyświetlały w dowolnym miejscu.. Niestety jej nieudolne próby opanowania php skończyły się skutkiem:

  1. //funkcja, która sprawdza stronę pod kątem istniejących wulgaryzmów oraz zamienia wulgaryzmy na -brzydkie_slowo-
  2. function($strona) { //np.www.przykladowa-strona.pl
  3.  
  4.  
  5. $plik = fopen($strona,'r');// otwiera plik strony
  6. $wulgaryzm="cholera";
  7.  
  8. $czy=strpos($plik,$wulgaryzm);
  9. if ($czy==FALSE)
  10. echo "strona nie zawiera wulgaryzmów";
  11.  
  12. else
  13. echo "strona zawiera wulgarne słownictwo";
  14. // nie wiem, jaką funkcję dodać, która zamieni słowo cholera bądź tudzież inny wulgaryzm na -brzydkie_slowo-.. jak? (załóżmy, że strona jest na własnym serwerze..;).)
  15.  
  16. }



//Nie wiem, czy właściwie, że użyłam funkcji strpos... myślałam też inaczej...:

  1. $plik = fopen($strona,'r'); // otwarcie pliku strony
  2. $wulgaryzm = "cholera";
  3.  
  4. $moj_plik = fopen('tymczasowy_plik_do_ktorego_zapiszemy_ile_razy_wystąpiły_wulgaryzmy.txt','a');
  5. flock($moj_plik, 2);
  6.  
  7. // przeszukujemy plik dopóki nie znajdziemy sie na końcu
  8. while(!feof($plik))
  9. {
  10. $linia = fgets($plik); // pobieramy jedną linię
  11. if (ereg($wulgaryzm, $linia, $wynik))
  12. fputs($moj_plik, $wynik);
  13. }
  14.  
  15. // i tu moja koncepcja się urywa... choć nie jestem pewna, czy przypadkiem funkcja ereg nie jest od porówniania wyrażeń regularnych i czy tak też mogę jej użyć...?
  16.  
  17. //na koniec tylko
  18. fclose($plik);
  19. rewind($moj_plik);
  20. $adresy = file($moj_plik);
  21.  
  22. flock($moj_plik, 3);
  23. fclose($moj_plik);
  24. unlink($moj_plik);
  25. }





czy ktoś może pomóc?
Wdzięczna blondynka. przedszkolanka.
ssstrz
Do zmiany wulgaryzmu na inne słowo warto tu wykorzystać http://php.net/manual/en/function.preg-replace.php
np
  1. $zdanie="ale dzisiaj CHOLERNIE zimno";
  2. $wulg="/CHOLERNIE/";
  3. $zamien="motyla noga";
  4. $czysteZdanie=preg_replace($wulg, $zamien, $zdanie);
  5.  
  6.  
Gość
Dziękuję za szybką odpowiedz...

Czyli:

  1. funkction zmien_wulgaryzm($strona){
  2.  
  3. $plik = fopen($strona,'r');
  4.  
  5.  
  6. $wulg="/CHOLERNIE/";
  7. $zamien="motyla noga";
  8.  
  9. while(!feof($plik))
  10. {
  11. $linia = fgets($plik); // pobieramy jedną linię
  12. preg_replece($wulg, $zamien, $linia))
  13. }
  14.  
  15. }



Dobrze kombinuję?
ssstrz
no w zasadzie dobrze, możesz troszkę ulepszyć to żeby f'cja nie zwracala uwagi na wielkość liter (czyli magiczne "i")
  1. funkction zmien_wulgaryzm($strona){
  2.  
  3. $plik = fopen($strona,'r');
  4.  
  5.  
  6. $wulg[0]="/CHOLERNIE/i";
  7. $wulg[1]="/dupa/i";
  8. $zamien="motyla noga";
  9.  
  10. while(!feof($plik))
  11. {
  12. $linia = fgets($plik); // pobieramy jedną linię
  13. $linia=preg_replece($wulg, $zamien, $linia);
  14. }
  15.  
  16. }

i mamy zmienną $linia oczyszczoną z wulgaryzmów. Następnie zapisujemy tą linijkę tam gdzie trzeba
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.