Файл: inc/gen.php
Строк: 86
<?php
function utf_strlen($str) /* Проверка длинны контента в utf8 */
{
    if (function_exists('mb_strlen'))
        return mb_strlen($str, 'utf-8');
    if (function_exists('iconv_strlen'))
        return iconv_strlen($str, 'utf-8');
    return strlen(utf8_decode($str));
}
function AutoContent($get_url) /* Функция выдерает ключевые слова со станицы */
{
    # НАСТРОЙКИ СКРИПТА
    $Occurence_min = 1; // минимальное кол-во повторов слов в ключевом списке
    $Wordlength_min = 4; // минимальное кол-во символов в ключевом слове
    $Wordlength_max = 15; // максимальное кол-во символов в ключевом слове
    $Keywordlength_max = 100; // максимальная длинна сгенерированного списка
    $default_text = 'бесплатные загрузки без смс и регистраций архив эротики и Загрузок'; // текст по умолчанию, если контента нет
    $blacklist_path = 'inc/stopwords.txt'; // черный список
    $seperator = " "; // разделитель между словами (лучше не ставить, т.к некоторые поисковики игнорируют такой текст)
    # НЕ ТРОГАТЬ (РАБОТЕТ ПАРСЕР)
    $buffer = strip_tags(join('', file("$get_url"))); // берем содержимое
    if (trim($buffer) == "")
        $output = $default_text; // если нет контента, то задаем по умолчанию
    else
    {
        $buffer = preg_replace("/([|])/", "", $buffer); // удаляем скобки
        $buffer = eregi_replace("[nrt]+", " ", $buffer); // удаляем пробелы и табуляцию
        $buffer = eregi_replace("(/*.**/|<?php[^<]*?>)", " ", $buffer); // удаляем рнр теги и комментарии, если такие имеются в тексте
        $buffer = strip_htmlentities($buffer); // конвертируем html эквиваленты в их значения...
        $buffer = eregi_replace("(" . CHR(31) . "|"|&|<|>| |§|©|[_=?*'"+!@()#{}:;./, -]|[0-9])+", " ", $buffer); // ... затем уничтожаем их
        $blacklist = array_unique(explode("rn", (file("$blacklist_path")))); // открываем Черный список слов
        $words = array_unique(explode(" ", $buffer));
        unset($words[0]); // удаляем слова из keywords, которые содержаться в stopwords.txt
        /* Парсим и раскладываем оставшиеся слова */
        $relevant = array();
        foreach ($words as $k => $v):
            if (utf_strlen($v) < $Wordlength_min || utf_strlen($v) > $Wordlength_max)
                continue;
            $v = trim(strtolower($v));
            if (in_array($v, $blacklist))
                continue;
            if (substr($v, -2) == 'ый' || substr($v, -2) == 'ых' || substr($v, -2) == 'го' || substr($v, -2) == 'ми' || substr($v, -2) == 'ом' || substr($v, -2) == 'ся' || substr($v, -2) == 'ее' || substr($v, -2) == 'ое')
                continue;
            /* Расчитываем релевантность */
            if (!isset($relevant[$v]))
                $relevant[$v] = 1;
            else
                $relevant[$v]++;
        endforeach;
        arsort($relevant);
        $output = '';
        foreach ($relevant as $k => $v)
        {
            if ($v < $Occurence_min)
                continue;
            if (utf_strlen($output) > $Keywordlength_max)
                break;
            $output .= $seperator . $k;
        }
        return $output = substr($output, 1);
    }
}
function strip_htmlentities($text) /* Функция удаляющая HTML эквиваленты и опасные символы */
{
    $html2iso = array('–' => '-', '"' => CHR(34), '–' => '-', ' ' => CHR(32), '¡' => CHR(161), '¢' => CHR(162), '£' => CHR(163), '¤' => CHR(164), '¥' => CHR(165), '¦' => CHR(166), '§' => CHR(167), '¨' => CHR(168), '©' => CHR(169), 'ª' => CHR(170), '«' => CHR(171), '¬' => CHR(172), '­' => CHR(173), '®' => CHR(174), '¯' => CHR(175), '°' => CHR(176), '±' => CHR(177), '²' => CHR(178), '³' => CHR(179), '´' => CHR(180), 'µ' => CHR(181), '¶' => CHR(182), '·' => CHR(183), '¸' => CHR(184), '¹' => CHR(185), 'º' => CHR(186), '»' => CHR(187), '¼' => CHR(188), '½' => CHR(189), '¾' => CHR(190), '¿' => CHR(191),
        'À' => CHR(192), 'Á' => CHR(193), 'Â' => CHR(194), 'Ã' => CHR(195), 'Ä' => CHR(196), 'Å' => CHR(197), 'Æ' => CHR(198), 'Ç' => CHR(199), 'È' => CHR(200), 'É' => CHR(201), 'Ê' => CHR(202), 'Ë' => CHR(203), 'Ì' => CHR(204), 'Í' => CHR(205), 'Î' => CHR(206), 'Ï' => CHR(207), 'Ð' => CHR(208), 'Ñ' => CHR(209), 'Ò' => CHR(210), 'Ó' => CHR(211), 'Ô' => CHR(212), 'Õ' => CHR(213), 'Ö' => CHR(214), '×' => CHR(215), 'Ø' => CHR(216), 'Ù' => CHR(217), 'Ú' => CHR(218), 'Û' => CHR(219), 'Ü' => CHR(220), 'Ý' => CHR(221), 'Þ' => CHR(222), 'ß' => CHR(223), 'à' => CHR(224), 'á' => CHR(225),
        'â' => CHR(226), 'ã' => CHR(227), 'ä' => CHR(228), 'å' => CHR(229), 'æ' => CHR(230), 'ç' => CHR(231), 'è' => CHR(232), 'é' => CHR(233), 'ê' => CHR(234), 'ë' => CHR(235), 'ì' => CHR(236), 'í' => CHR(237), 'î' => CHR(238), 'ï' => CHR(239), 'ð' => CHR(240), 'ñ' => CHR(241), 'ò' => CHR(242), 'ó' => CHR(243), 'ô' => CHR(244), 'õ' => CHR(245), 'ö' => CHR(246), '÷' => CHR(247), 'ø' => CHR(248), 'ù' => CHR(249), 'ú' => CHR(250), 'û' => CHR(251), 'ü' => CHR(252), 'ý' => CHR(253), 'þ' => CHR(254), 'ÿ' => CHR(255));
    reset($html2iso);
    unset($entities);
    unset($isochars);
    while (list($key, $value) = each($html2iso))
    {
        // Perl pattern
        //$entities[] = "/$key/g";
        $entities[] = "/$key/";
        $isochars[] = $value;
        $text = str_replace($key, $value, $text);
    }
    return $text;
}
?>