Generowanie najpopularniejszych słów

Dzisiaj chciałbym Wam przedstawić moje nowe wypociny, czyli klasę PHP do generowania najpopularniejszych słów z tekstu. Może się przydać niektórym, więc publikuję ją.
UWAGA! Skrypt generujący składnię źle wykonuje swoją powinność z tym kodem, więc proszę się nie przejmować kolorami. Zapewniam, że kod jest poprawny.

    <?php
       /**
        *
        * @copyright (c) 2008 Łukasz "Rutek" Rutkowski
        * @license http://creativecommons.org/licenses/by/2.5/pl/deed.en_US Creative Commons Attribution 2.5 License
        *
        */
        class keywords {
            public $keywords;
            private $text;
            //Put text to $this->text var
            //$text - string - work text
            public function put_text($text) {
                //Delete HTML tags
                $text = strip_tags($text);
 
                $replace = array(',', '.', '"', '\'', '?', '!');
                $text = str_replace($replace, '', $text);
 
                $this->text  = $text;
            }
            //Get keywords
            //$how_many - integer - count of keywords to return
            //$add_count - TRUE or FALSE - add count of occurrence to array ( ? )
            public function get_keywords($how_many, $add_count = FALSE) {
                //get words
                $words = explode(' ', $this->text);
                //sort array by key ( alphabetical )
                arsort($words);
 
                $count = count($words);
                $i = 0;
                $word_count = 0;
 
                //make keywords map
                while($i < $count) {
                    $word2 = $words[$i];
                    if($words[$i] != '') {
                        if(!isset($word[$word2])) {
                            $word[$word2] = 1;
                        } else {
                            $word[$word2]++;
                        }
                    }
                    $i++;
                }
 
                //sort array by value ( reverse )
                arsort($word);
 
                $i = 0;
 
                //make a final keywords map
                while($i < $how_many) {
                    if($i == 0) {
                        $word4 = current($word);
                        if($add_count == TRUE) {
                            $word3 = array($word4, key($word));
                        } else {
                            $word3 = key($word);
                        }
                    } else {
                        $word4 = next($word);
                        if($add_count == TRUE) {
                            $word3 = array($word4, key($word));
                        } else {
                            $word3 = key($word);
                        }
                    }
                    $words2[$i] = $word3;
                    $i++;
                }
 
                //set $words2 as value of $this->keywords
                $this->keywords = $words2;
            }
            //unset strings and arrays
            public function __destruct() {
                unset($this->text);
                unset($this->keywords);
            }
        }
    ?>
Za ten artykuł podziękowano 0 raz(y). Chcesz i Ty ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">