Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Algorytmy, klasy, funkcje _ Nieeee spaaamuj :)

Napisany przez: tiraeth 9.06.2005, 17:45:59

  1. <?php
  2. function noSpam($funcTeksts)
  3. {
  4.  /*************************************************
  5. * Funkcja poprawia niepoprawnie napisane wyrazy 
  6. * (powtarzanie liter), slownik wyjatkow nalezy
  7. * sobie samemu uzupelnic w zmiennej $slownik.
  8. *************************************************/
  9.  /* Skrypcik darmowy, mozna wykorzystywac do np.
  10. * ksiag gosciu, systemow newsow (komentarze) i tym
  11. * podobne...
  12. *************************************************/
  13.  
  14.  
  15.  $slownik = http://www.php.net/array('winny');
  16.  $znaczki = http://www.php.net/array('.', '!', '?');
  17.  
  18.  $string = $funcTeksts;
  19.  $slowa = http://www.php.net/explode(&#092;" \", $string);
  20.  
  21.  foreach($slowa as $slowo)
  22.  {
  23. for($i=0; $i<strlen($slowo); $i++)
  24. {
  25.  $b = $i; $b--;
  26.  $test_slowo = http://www.php.net/str_replace(http://www.php.net/array(&#092;"!\", \".\", \",\", \";\", \":\", \"?\"), \"\", $slowo); $test_slowo = strtolower($test_slowo);
  27.  if(http://www.php.net/strtolower($slowo{$b}) != http://www.php.net/strtolower($slowo{$i}) || http://www.php.net/in_array($slowo{$i}, $znaczki) || http://www.php.net/in_array($test_slowo, $slownik) || http://www.php.net/strlen($test_slowo) <= 5)
  28.  {
  29. $zmienna[] = $slowo{$i};
  30.  }
  31.  else
  32.  {
  33. if($ok == false)
  34. {
  35.  $pop++;
  36.  $ok = true;
  37. }
  38.  }
  39. }
  40. $tekstz[] = $zmienna;
  41. http://www.php.net/unset($zmienna);
  42. $ok = false;
  43.  }
  44.  
  45.  foreach($tekstz as $id => $tek)
  46.  {
  47. $count = http://www.php.net/count($tekstz[$id]);
  48. for($i=0; $i<$count; $i++)
  49. {
  50.  $teksta[$id].=$tekstz[$id][$i];
  51. }
  52. $tekstz[$id] = $teksta[$id];
  53.  }
  54.  
  55.  $nowy_tekst = http://www.php.net/implode(&#092;" \", $tekstz);
  56.  
  57.  $array['old'] = $string;
  58.  $array['new'] = $nowy_tekst;
  59.  $array['mistakes'] = $pop;
  60.  
  61.  return $array;
  62. }
  63. ?>


No i fajna funkcja sobie powstała smile.gif Może się przydać smile.gif Nie mogę poradzić sobie z błędem przy wyrazie winnnny, chcę aby zwróciło winny a nie winy....

Co sądzicie o funkcji?

Napisany przez: AxZx 9.06.2005, 20:22:15

no wlasnie, bo gdy ktos bedzie musial uzyc 3 liter pod rzad?smile.gif
masz daj jakis limit zeby nie bral wyrazow pod uwage gdy maja np 5 liter takich samych pod rzad, albo cos takiego

Napisany przez: tiraeth 10.06.2005, 22:09:48

Kod
#
#-----[ FIND (line 29)]------------------------------------------
#

         if(strtolower($slowo{$b}) != strtolower($slowo{$i}) || in_array($slowo{$i}, $znaczki) || in_array($test_slowo, $slownik))

#
#-----[ IN-LINE, FIND ]------------------------------------------
#

in_array($test_slowo, $slownik)

#
#-----[ AFTER, ADD ]------------------------------------------
#

|| strlen($test_slowo) <= 5


Proste nie? snitch.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)