ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


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

> Без описания
Vladimir
Отправлено: 15 Февраля, 2008 - 13:53:35
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Скрипт создаёт ключевые слова из заголовка страницы (разделяет запятыми) и из контента (ищет наиболее часто встречающиеся):
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?>">

Не приведёт ли использование этого скрипта к каким-либо нежелательным последствиям со стороны поисковых систем?
 
 Top
Furax
Отправлено: 15 Февраля, 2008 - 15:18:37
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Да вроде не должно... По-моему, напротив: ключевые слова будут соответствовать тому, что сам поисковик найдёт на странице.
 
 Top
Vladimir
Отправлено: 15 Февраля, 2008 - 15:32:17
Post Id


Advanced Member


Покинул форум
Сообщений всего: 270
Дата рег-ции: Апр. 2005  

Карма 0




Ну это верно. Скрипт так и сделан, что ищет наиболее часто встречающиеся слова.
 
 Top
Vimaz
Отправлено: 21 Февраля, 2008 - 15:21:15
Post Id


Newbie


Покинул форум
Сообщений всего: 28
Дата рег-ции: Июль 2007  

Карма 0




Ребята, а куда ставить код этого скрипта? Напрямую в каждую страницу? Или через SSI в каждую страницу?
И еще. Когда все слова сгенерируюся, я их использую - скрипт надо удалять со страницы?Улыбка
 
 Top
Systemnik Администратор
Отправлено: 21 Февраля, 2008 - 15:33:22
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




ух паря тыэтот скриптскопируй и удалять его ненадо если ты будеш делать это для фоурма о вставлятьнадо в all_header.tpl Подмигивание
 
 Top
Furax
Отправлено: 21 Февраля, 2008 - 15:33:47
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




Vimaz
Видишь ли, предпологается, что в переменные $title и $content закинуты заголовок и контент страницы. Лучше всего один раз прогнать для каждой страницы, а результаты сохранить или на этой же странице (в мета-тегах), или в базе данных.
 
 Top
SuperUzeeeeeeeeeeeer
Отправлено: 30 Марта, 2014 - 12:19:44
Post Id


Newbie


Покинул форум
Сообщений всего: 4
Дата рег-ции: Март 2014  

Карма 0




Как установить????
(Добавление)
Systemnik
Привет. Можно по подробней как установить на форум мод. У меня ошибку выдает).
Тупо вставить в конце файла (там же уже есть код какой то в этом тпл файле). Или стереть старый код и вместо него поставить этот.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


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

[Script Execution time: 0.1134]     [ Gzipped ]