Файл: 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;
}
?>