Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Skrypt usuwający wulgaryzmy Problem
ppietras86
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

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


]witam
Pobralem sobie z sieci skrypt w PHP usuwający wulgaryzmy z tekstu "oczywiście przeklenstwa zamieniam na inne slowa"
  1. function badwords($message) {
  2. $badwords = array("ala","ola","ela","ula");
  3. foreach($badwords as $badword) {
  4. $stars = str_repeat("*", strlen($badword));
  5. $message = str_replace($badword, $stars, $message);
  6. }
  7. return $message;
  8. }


w takiej formie skrypt działa świetnie i wstawia w miejsce przekleństwa (naprzykład ala (IMG:style_emoticons/default/smile.gif) ) ) gwiazdki. Jednak ja chciałbym baze powiekszyć i załadować plik wulgaryzmy.txt do tablicy
link do pliku: uzylem kodowania iso. http://www.php-fusion.pl/forum/viewthread....;getfile=104605

skrypt poprawiony
  1. function badwords($message) {
  2. $badwords = file("wulgaryzmy.txt");
  3. foreach($badwords as $badword) {
  4. $stars = str_repeat("*", strlen($badword));
  5. $message = str_replace($badword, $stars, $message);
  6. }
  7. return $message;
  8. }


No i po zaladowaniu pliku do tablicy skrypt nie dziala - nie sprawdza wyrazów i po 2 godzinach patrzenia co mogloby sie dział zgłupiałem i nie wiem. Plika mam zaladowany do tabliy poprawnie bo sprawdzalem.
Pomóżcie

P.S. Pewnie to jakaś błachostka przeszkadza ale niestety nie wiem w którym miejscu.

Ten post edytował ppietras86 16.03.2010, 00:15:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zamiast sprawdzania ile jest tych słów i for mogłeś użyć foreach, które są przystosowane do obsługi tablic. Mogłeś też użyć jednej z funkcji: array_walk, array_map, array_filter.

EDIT: Zauważ też, że niepotrzebnie tworzysz drugą pętlę. Trim mogłeś wrzucić od razu do tej, która sprawdza. Miałbyś wtedy postać:
  1. function badwords($message) {
  2. $badwords = file("page/wulgaryzmy.txt");
  3. foreach($badwords as $badword) {
  4. $badword = trim($badword);
  5. $stars = str_repeat("*", strlen($badword));
  6. $message = str_replace($badword, $stars, $message);
  7. }
  8. return $message;
  9. }
Jak widzisz logika działań sprawia, że ilość niepotrzebnych działań skraca się znacznie. Na samej dodatkowej pętli trimującej, której się pozbyłeś zaoszczędzisz znacznie, gdy plik wulgaryzmów będzie zawierał znaczną ilość wpisów.
Powód edycji: [thek]: Małe uzupełnienie.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 21:35