<?php
//debug
function _print($str,$name='')
{
$print=false;
echo"<pre align='left'>";
echo "<b>".$name."</b><br />";
if(print_r($str)): $print=true; endif;
echo"</pre>";
return $print;
}
//debug
/**
* Удаление символов переноса, возврата каретки, табуляции
* @param string
* @return string
*/
function str_trim(&$str)
{
$str=trim($str);
$str=str_replace("\n","",$str);
$str=str_replace("\r","",$str);
$str=str_replace("\t","",$str);
return $str;
}
function divide(&$array,$min=5,$max=15)
{
$words=array();
reset($array);
foreach($array as $string):
if(strlen($string) >= $min && strlen($string) <= $max):
$words[]=$string;
endif;
endforeach;
$array=$words;
unset($words);
return $array;
}
function keywords($str,$count=15,$min=5,$max=15)
{
// ну тут ваш массив должен быть)) или смотри коменты
global $config;
//---------------------<
$keywords=array();
$offset=0;
$symbol=array(",",".",";",":","@","~","-","–","+","?","!","'",'"');
$fastquotes=array( "\x27", "\x22", "\x60", "\t","\n","\r",'"',"'", "\\", '\r', '\n', "/","{","}","[","]");
$quotes=array( "\x27", "\x22", "\x60", "\t","\n","\r","'",",",".","/","¬","#",";",":","@","~","[","]","{","}","=","-","+",")","(","*","&","^","%","$","<",">","?","!", '"' );
$str=strtolower($str);
$str=str_replace($symbol,' ',$str);
str_trim($str);
$str=preg_replace("#\<.+?\>|</.+?\>#is"," ",$str);
$str=str_replace($fastquotes,'',str_trim($str));
$str=str_replace($quotes,'',$str);
$words=preg_split("/[\s]+/s",$str);
divide($words,$min,$max);
$words=array_count_values($words);
arsort($words);
$words=array_keys($words);
$words=array_unique($words);
$words=array_slice($words,$offset,$count);
//если остальное не нужно то ... и раскоментируйте сл строку
//return $words=implode(", ",$words);
//
// тут нада свои ключи соощать
$meta=preg_split("/[\^s,]+/s",str_trim($config['keywords']));
$free=$count-count($meta);
// тут нада заголовок тепередать
$title=preg_split("/[\s]+/s",str_replace($quotes,'',$config['title']));
divide($title,$min,$max);
shuffle($title);
if(count($title) <= $free):
$limit=count($title);
else:
$limit=$free;
endif;
$title=array_slice($title,$offset,$limit);
$keywords=array_merge($meta,$title,$words);
$keywords=implode(", ",$keywords);
return $keywords;
}
//example| пример
global $config;
$fp=fopen('test.txt','r');
$filesize = filesize('test.txt');
$str=fread($fp,$filesize);
fclose($fp);
// в переменной $str обычный текст, можно стегами)) они все равно вырежутся
//стандартные ключевые слова которые у вас на сайте
// можно в функции указать свои переменные
$config['keywords']='ключ, ключ1, ключ2';
//заголовок текущей страницы
$config['title']='мой сайт - заголовок текущей страницы';
// что за переметры 1 текст который анализируем,
//2- колличестко слов которе неоходиом выдрать +
//еще слова будут из заголовка и своих ключевых слов
//3- 6 мининмальная длина слова, ну нам не нужны слова типа ты, мне, да, и ,в и тп... (оптимально 5-6)
//4- 15 макимальная длина слова, низнаю просто сдел вдуг захочу ограничить))
$config['keywords']=keywords($str,25,6,15);
_print($config,'KeyWords');
echo '<meta name="keywords" content="'.$config['keywords'].'">';
//выводить напимер так
?>