Strict Standards: Resource ID#33 used as offset, casting to integer (33) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Скрипт генерации ключевых слов
ТвойWeb » WebMaster класс » PHP/Perl » Скрипт генерации ключевых слов

Страниц (1): [1]
 

1. Vladimir - 15 Февраля, 2008 - 05:53:35 - перейти к сообщению
Скрипт создаёт ключевые слова из заголовка страницы (разделяет запятыми) и из контента (ищет наиболее часто встречающиеся):
CODE:
<?php
$title ="Заголовок страницы";
$content = "Контент страницы";

?>

<?php
class Counter
{
var $origin_arr;
var $modif_arr;
var $min_word_length = 3;

function explode_str_on_words($text)
{
$search = array ("'ё'",
"'<script[^>]*?>.*?</script>'si", // Вырезается javascript
"'<[\/\!]*?[^<>]*?>'si", // Вырезаются html-тэги
"'([\r\n])[\s]+'", // Вырезается пустое пространство
"'&(quot|#34);'i", // Замещаются html-элементы
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e");

$replace = array ("е",
" ",
" ",
"\\1 ",
"\" ",
" ",
" ",
" ",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");

$text = preg_replace ($search, $replace, $text);

// То, что нельзя использовать в ключевых словах
$del_symbols = array(",", ".", ";", ":", "\"", "#", "\$", "%", "^", "!", "@", "`", "~", "*", "-", "=", "+", "\\", "|", "/", ">", "<", "(", ")", "&", "?", "№", "\t", "\r", "\n", "{","}","[","]", "'", "“", "”", "•", "как", " для ", "что", "или", "это", "этих", "всех", "вас", "они", "оно", "еще", "когда", "где", "эта", "лишь", "уже", "вам", "нет", "если", "надо", "все", "так", "его", "чем", "при", "даже", "мне", "есть", "раз ", "два", "только", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");

$text = str_replace($del_symbols, array(" "), $text);
$text = ereg_replace("( +)", " ", $text);
$this->origin_arr = explode(" ", trim($text));
return $this->origin_arr;
}

function count_words()
{
$tmp_arr = array();
foreach ($this->origin_arr as $val)
{
if (strlen($val)>=$this->min_word_length)
{
$val = strtolower($val);
if (array_key_exists($val, $tmp_arr))
{
$tmp_arr[$val]++;
}
else
{
$tmp_arr[$val] = 1;
}
}
}
arsort ($tmp_arr);
$this->modif_arr = $tmp_arr;
}

function get_keywords($text)
{
$this->explode_str_on_words($text);
$this->count_words();
$arr = array_slice($this->modif_arr, 0, 15);
//После последнего слова
$str = ", ";
foreach ($arr as $key=>$val)
{
//После каждого слова
$str .= $key . ", ";
}
return trim(substr($str, 0, strlen($str)-2));
}
}

// создание экземпляра класса
$word_counter = new Counter();

// если длинна строки больше 50000
if (strlen($content)>50000)
{
// подбор слов
$keywords. = $word_counter->get_keywords(substr($content, 0, 50000));
}
else // если меньше
{
// подбор слов
$keywords. = $word_counter->get_keywords($content);
}

//Генерация ключевых слов из заголовка:
preg_match_all("/[A-Za-zА-Яа-я0-9]{4,}/", $title, $matches);
$keywords. = implode(", ", $matches[0]);
?>

<meta name="keywords" content="<?=$keywords?>">

Не приведёт ли использование этого скрипта к каким-либо нежелательным последствиям со стороны поисковых систем?
2. Furax - 15 Февраля, 2008 - 07:18:37 - перейти к сообщению
Да вроде не должно... По-моему, напротив: ключевые слова будут соответствовать тому, что сам поисковик найдёт на странице.
3. Vladimir - 15 Февраля, 2008 - 07:32:17 - перейти к сообщению
Ну это верно. Скрипт так и сделан, что ищет наиболее часто встречающиеся слова.
4. Vimaz - 21 Февраля, 2008 - 07:21:15 - перейти к сообщению
Ребята, а куда ставить код этого скрипта? Напрямую в каждую страницу? Или через SSI в каждую страницу?
И еще. Когда все слова сгенерируюся, я их использую - скрипт надо удалять со страницы?Улыбка
5. Systemnik - 21 Февраля, 2008 - 07:33:22 - перейти к сообщению
ух паря тыэтот скриптскопируй и удалять его ненадо если ты будеш делать это для фоурма о вставлятьнадо в all_header.tpl Подмигивание
6. Furax - 21 Февраля, 2008 - 07:33:47 - перейти к сообщению
Vimaz
Видишь ли, предпологается, что в переменные $title и $content закинуты заголовок и контент страницы. Лучше всего один раз прогнать для каждой страницы, а результаты сохранить или на этой же странице (в мета-тегах), или в базе данных.
7. SuperUzeeeeeeeeeeeer - 30 Марта, 2014 - 04:19:44 - перейти к сообщению
Как установить????
(Добавление)
Systemnik
Привет. Можно по подробней как установить на форум мод. У меня ошибку выдает).
Тупо вставить в конце файла (там же уже есть код какой то в этом тпл файле). Или стереть старый код и вместо него поставить этот.

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0371]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33