Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wulgaryzmy na stronie, Pewnego razu pewna blondynka
--kaznodziej/ka--
post
Post #1





Goście







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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
ssstrz
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 17
Dołączył: 15.12.2012

Ostrzeżenie: (0%)
-----


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.  


Ten post edytował ssstrz 3.01.2013, 19:59:32
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







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ę?
Go to the top of the page
+Quote Post
ssstrz
post
Post #4





Grupa: Zarejestrowani
Postów: 103
Pomógł: 17
Dołączył: 15.12.2012

Ostrzeżenie: (0%)
-----


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

Ten post edytował ssstrz 3.01.2013, 20:55:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:51