Скрипт автогенерации meta гегов из контента

A
На сайте с 07.05.2009
Offline
2
1256

Добрый вечер!

Мне нужно написать небольшой скрипт, который бы автоматически генерировал теги meta (например description) из контента странички. Я так понимаю, что нужно создавать массивы в определенных php скриптах, которые грузят страницы.

Я так понимаю, он не сложный, но...

так как в php шарю не особо... Может кто сможет помочь? или хотя бы дать наводку как писать...

Роюсь в интернете уже почти сутки.. так ничего и не нашел((

G.Vad!k
На сайте с 04.10.2007
Offline
74
#1

http://itsp.info/myscripts/autokeyword/index.php

Там же этот класс можно и скачать. Стоит только вбить русские стоп слова и использовать по назначению.

A
На сайте с 07.05.2009
Offline
2
#2
G.Vad!k:
http://itsp.info/myscripts/autokeyword/index.php

Там же этот класс можно и скачать. Стоит только вбить русские стоп слова и использовать по назначению.

Благодарю. Сейчас посмотрю)

accide добавил 11.05.2009 в 21:57

Прошу прощения, но видимо туповат немного=)

Подключаю класс в скрипте, который отвечает за загрузку странички:

<?php

include_once('/папка/папка/папка/class.autokeyword.php');

$autokeyword = autokeyword();

.....

В хтмл коде странички пишу <META name="keywords" content="{autokeyword}"

И ничего.. что я неправильно делаю?

G.Vad!k
На сайте с 04.10.2007
Offline
74
#3

Простейший пример использования данного класса:


$data =<<<EOF

<p>Imagine being overseas and your identity being available for the taking - your nationality, your name, your passport number. Everything.</p>

<p>That's the fear of privacy and security specialists now that the state department plans to issue "e-Passports" to American travelers beginning in late August.</p>

<p>They'll have radio frequency identification (RFID) tags and are meant to cut down on human error of immigration officials, speed the processing of visitors and safeguard against counterfeit passports.</p>

<p>Yet critics are concerned that the security benefit of RFID technology, which combines silicon chips with antennas to make data accessible via radio waves, could be vastly outweighed by security threats to the passport holder.</p>

EOF;

/**********************************************
This is the automatice keyword generator class
***********************************************/

//this the actual application.
include('class.autokeyword.php');

echo "<H1>Input - text</H1>";
echo $data;

$params['content'] = $data; //page content

//set the length of keywords you like
$params['min_word_length'] = 5; //minimum length of single words
$params['min_word_occur'] = 2; //minimum occur of single words
$params['min_2words_length'] = 3; //minimum length of words for 2 word phrases
$params['min_2words_phrase_length'] = 10; //minimum length of 2 word phrases
$params['min_2words_phrase_occur'] = 2; //minimum occur of 2 words phrase
$params['min_3words_length'] = 3; //minimum length of words for 3 word phrases
$params['min_3words_phrase_length'] = 10; //minimum length of 3 word phrases
$params['min_3words_phrase_occur'] = 2; //minimum occur of 3 words phrase

$keyword = new autokeyword($params, "UTF-8");
$keywords = $keyword->get_keywords();

echo "<H2>Input - keywords</H2>";
echo $keywords;
A
На сайте с 07.05.2009
Offline
2
#4

Спасибо большое. чет тупанул. теперь все понятно.

ТОлько теперь проблема в том, чтобы интегрировать его в header

Когда интегрирую, сайт выдает часть кода php в самом верху страницы((

Голову ломаю уже битый час...

в хедере пишу скрипт: (например чтоб вставить в титл)

<?php

...

//1 слово

$keywords1 = $keyword->parse_words();

...

?>

<html xmlns="http://www.w3.org/1999/xhtml" dir="{DIR}" lang="{LANG}">

<head>

<title>$keywords1</title>

страница грузится, но в самом верху еще пишется: parse_words(); и скрипт не работает((

zhidronsss
На сайте с 12.10.2007
Offline
36
#5

можно и таким php скриптом

A
На сайте с 07.05.2009
Offline
2
#6

спасибо.. сейчас попробую разобраться..

accide добавил 12.05.2009 в 16:34

Наверно глупый вопрос задам..

имеет значение .php или .html если вставлять код в страницу?

Учусь просто только;)

zhidronsss
На сайте с 12.10.2007
Offline
36
#7

еще есть получение description

Работает, лениво оформлять, просто вырезал как есть.

По плотности вхождения ключевиков отбирает предложение из текста.

		function description($text) 

{
$text=preg_replace("/<h[^>]+>(.*?)<\/h[^>]+>/is", "", $text);
$text=strip_tags($text);
$keyword=keyword($text,4,15);
$desk=Array();$d=0;
$text=preg_replace("/[\s]+/is", " ", $text);
preg_match_all("/([А-Я][^\.]+\.)/",$text,$word);

//print_r($keyword);
//print_r($word);



for ($i=0; $i<count($word[1]); $i++)
{
$ball[$i]=0;
for ($j=0; $j<count($keyword); $j++)
{
$ball[$i]=$ball[$i]+substr_count($word[1][$i], $keyword[$j]);
}
}

$ball=array_flip($ball);//получаем слова и частоту, меняем местами ключ-значение
krsort($ball);//сортируем по убыванию
$ball = array_slice ($ball, 0,1);
//print_r($ball);
return $word[1][$ball[0]];
}
A
На сайте с 07.05.2009
Offline
2
#8

е мое.. в title в любом случае выдает просто переменную а не ее значение...

accide добавил 12.05.2009 в 16:48

Проблема то собственно в том, что (если разбирать 1 скрипт)

<?php


//assuming that your site contents is from a database.

//set the outbase of the database to $data.

$data =<<<EOF

(Здесь допустим текст)

EOF;

include('class.autokeyword.php');


$params['content'] = $data;

$params['min_word_length'] = 5; //minimum length of single words
$params['min_word_occur'] = 2; //minimum occur of single words
$params['min_2words_length'] = 3; //minimum length of words for 2 word phrases
$params['min_2words_phrase_length'] = 10; //minimum length of 2 word phrases
$params['min_2words_phrase_occur'] = 2; //minimum occur of 2 words phrase
$params['min_3words_length'] = 3; //minimum length of words for 3 word phrases
$params['min_3words_phrase_length'] = 10; //minimum length of 3 word phrases
$params['min_3words_phrase_occur'] = 2; //minimum occur of 3 words phrase

$keyword = new autokeyword($params, "windows-1251");



$keywords1 = $keyword->parse_words();
echo <title>$keywords1</title>
?>

то все отлично.. при загрузке этого файла все ок - в титле выдает значение, а когда интегрирую в header.html - не фурычит...

accide добавил 12.05.2009 в 17:22

Заметил, что если грузить хедер отдельно, то все работает.. если же грузить его нормально вместе с индекс и футер, то скрипт не работает... что здесь может быть?

[Удален]
#9

Из даннео, много раз юзал ))


/* ==================================================== ##
## SEOKEYWORDS FUNCTION | CLASS API ##
## ==================================================== */
function seokeywords($contents,$symbol=5,$words=35){
$contents = @preg_replace(array("'<[\/\!]*?[^<>]*?>'si","'([\r\n])[\s]+'si","'&[a-z0-9]{1,6};'si","'( +)'si"),
array("","\\1 "," "," "),strip_tags($contents));

$rearray = array("~","!","@","#","$","%","^","&","*","(",")","_","+",
"`",'"',"№",";",":","?","-","=","|","\"","\\","/",
"[","]","{","}","'",",",".","<",">","\r\n","\n","\t");

$adjectivearray = array("ые","ое","ие","ий","ая","ый","ой","ми");


$contents = @str_replace($rearray," ",$contents);
$this->keywordcache = @explode(" ",$contents);
$rearray = array();

foreach($this->keywordcache as $word){
if(strlen($word)>=$symbol && !is_numeric($word)){
$adjective = substr($word,-2);
if(!in_array($adjective,$adjectivearray)){
$rearray[$word] = (array_key_exists($word,$rearray)) ? ($rearray[$word] + 1) : 1;
}
}
}

@arsort($rearray);
$this->keywordcache = @array_slice($rearray,0,$words);
$keywords = "";

foreach($this->keywordcache as $word=>$count){
$keywords.= ",".$word;
}

return substr($keywords,1);
}
A
На сайте с 07.05.2009
Offline
2
#10

Благодарю... сейчас посмотрим что можно сделать)

accide добавил 12.05.2009 в 19:55

Все равно то же самое.. скрипт не обрабатывается..

отдельно от индекса с футером - обрабатывается отлично... а вместе не хочет работать

accide добавил 12.05.2009 в 20:30

Подскажите только, если кто знает, почему так может быть?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий