|
| Дата |
|
USD/RUB | 89.7026 | BTC/USD | 67831.0975 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
02.06.2012, 13:54
|
Start Post: Уникализация контента
|
Member
Регистрация: 29.07.2010
Сообщений: 95
Бабло: $47760
|
Текст англоязычный , ПХП скриптом собирается, надо налету уникализировать.
Подскажите идею, как сделать текст более менее уникальным
или скрипт на ПХП
или сервис по уникализации хороший
|
|
|
06.07.2012, 00:21
|
#12
|
prospera
Регистрация: 03.01.2009
Сообщений: 882
Бабло: $198348
|
обратитесь к классике - ред баттон,
функция карлмаркс - качество офигенное, читабельность офигенная.
PHP код:
function KarlMarks($keyword, $kol, $pl_min = FALSE, $pl_max = FALSE){
//nastart('mark');
global $text, $keys, $max_plot, $min_plot, $tags, $nn_textlinks, $urls, $lang, $onepage;
global $nn_old, $old_urls, $mis, $textlevel, $mis_min_plot, $mis_max_plot, $sa;
global $rastoiya_min, $rastoiya_max, $rastoiya;
global $max_keeeeeeys, $max_keeeys, $max_keeeys_ma;
global $nn_randzk;
// Синонимизация кеев
global $synonims;
// [PLTEXT-1-2-(3|4)]
if (($pl_min !== FALSE) AND ($pl_max !== FALSE)) {
$max_keeeeeeys_PL = 'on';
$max_keeeys_PL = $pl_min;
$max_keeeys_ma_PL = $pl_max;
} else {
$max_keeeeeeys_PL = $max_keeeeeeys;
$max_keeeys_PL = $max_keeeys;
$max_keeeys_ma_PL = $max_keeeys_ma;
}
if ($mis=="on") {$miss=miss($keyword); $n_miss=sizeof($miss)-1;}
$sorl=@sizeof($old_urls)-1;
$stext=sizeof($sa)-1;
$tempr=mt_rand(0, $stext);
$temptext=$text[$tempr];
$tempsa=$sa[$tempr];
$stext=sizeof($temptext)-1;
if ($lang=="ru") {$stop=array(" а.", " был.", " была.", " были.", " было.", " быть.", " в.", " вам.", " вас.", " весь.", " вот.", " все.", " всего.", " всех.", " для.", " дни.", " днями.", " до.", " дык.", " дял.", " его.", " ее.", " ей.", " если.", " есть.", " еще.", " же.", " за.", " и.", " ибо.", " или.", " их.", " к.", " как.", " когда.", " который.", " которая.", " которой.", " который.", " которых.", " кто.", " мне.", " мной.", " могли.", " могу.", " могут.", " может.", " мочь.", " на.", " не.", " наш.", " него.", " нее.", " нет.", " них.", " но.", " о.", " от.", "об.", " она.", " они.", " оно.", " под.", " при.", " свое.", " свой.", " своя.", " себя.", " собой.", " тогда.", " так.", " такой.", " те.", " тебя.", " тем.", " то.", " тобой.", " тогда.", " того.", " той.", " только.", " ты.", " уже.", " чего.", " чем.", " что.", " чтобы.", " эта.", " эти.", " это.", " этот.");}
else {$stop=array();}
for ($p=0; $p<$kol; $p++){
// цикл выбирает случайное предложение
// и проверяет на количество слов в нём
// если оно больше 3-х, то выходит из цикла
for ($v=0; $v<10; $v++){
$r1=mt_rand(0, $stext);
$tt1=trim($temptext[$r1]); // выбираем случайное предложение
$t1=explode(" ", $tt1); $st=sizeof($t1);
if ($st>3) break 1;
}
// поиск предложений с одинаковым (или близким к этому) кол-вом слов
$i2=0; $raz=-100; $drug=array();
$ssa=sizeof($tempsa)-1;
for ($aa=0; $aa<188; $aa++){
$a=mt_rand(0,$stext);
$r=$st-$tempsa[$a]; $sdrug=sizeof($drug);
if (($r>$raz) && ($r<1) && ($a!=$r1) ) {$i2=$a; $raz=$r;}
if (($r>-8) && ($r<1) && ($a!=$r1) && ($sdrug<10)) {$drug[]=$temptext[$a];}
if (($raz==0) && ($sdrug>7)) break 1;
if ($sdrug>8) break 1;
}
$drug[]=$temptext[$i2]; $drug[]=$tt1; $drug=array_unique($drug);
$t2=trim($temptext[$i2]);
$t2=explode(" ", $t2);
$st2=sizeof($t2)-1;
reset($drug);
while (list ($key, $val) = @each ($drug)) {
$drug2[]=$val;
}
$drug=$drug2; unset($drug2);
$sdrug=sizeof($drug)-1;
for ($a=0; $a<$st; $a=$a+$textlevel){
$t=mt_rand(0,$sdrug);
$d=@explode(" ", $drug[$t]);
for ($x=0; $x<$textlevel;$x++){
// сбор слов в предложение. Добавим запятую?
// сложный способ добавления
if ((isset($d[$a+$x]) === FALSE) OR ($d[$a+$x] == '')) {
// $x = ($x == 0) ? $x : $x - 1;
continue;
}
// посмотрим на эффект?
// echo '<font color="red">' , $d[$a+$x] , '</font> | ';
$slog = trim($d[$a+$x]) . ' ';
if (
(strpos($slog, 'котор') !== FALSE) OR
(strpos($slog, 'что') !== FALSE) OR
(strpos($slog, 'затем') !== FALSE) OR
(strpos($slog, 'либо') !== FALSE) OR
(strpos($slog, 'если') !== FALSE)
) {
@$slovo .= ', ' . $d[$a+$x];
} else {
@$slovo .= ' ' . $d[$a+$x];
}
unset($slog);
}
@$te.=$slovo;
unset($d); unset ($slovo);
}
$te=trim($te).". ";
unset($drug); unset($tt1);
}
$te=str_replace($stop, ". ", $te);
$te=str_replace(",.", ".", $te);
$te = str_replace(array(' , ', ',,'), '', $te);
// ПОШЛА, ПОШЛА РОДИМАЯ! У-У-УХ!
$itog=array();
$itog=explode(" ", $te);
$sitog=sizeof($itog)-1;
// KEYWORDS
$plot=mt_rand($min_plot, $max_plot); // рэндомная плотность
$dnorm=ceil(($plot * $sitog) / 100); // количество вставляемых кейвордов
$tags_s = sizeof($tags) - 1;
// средний метод вставки
// $dnorm = ($dnorm > 6) ? $dnorm / 2 : $dnorm;
$rand = 1;
$tag1 = '';
$keys_m = 0;
if (($max_keeeeeeys_PL != '') AND ($max_keeeys_PL !== FALSE) AND ($max_keeeys_ma_PL !== FALSE)) {
$keeeeys = mt_rand($max_keeeys_PL, $max_keeeys_ma_PL);
} else {
if ($max_keeeeeeys == 'on') {
$keeeeys = mt_rand($max_keeeys, $max_keeeys_ma);
}
}
// киворд с урлом ;)
$keywordOld = $keyword;
$repltg = array('<a href="', 'href', '<a ', '</a>');
$keyword = str_replace($repltg, '', strip_tags($keyword));
// Сделаем текст без кейворда? Спросите: "зачем?", а за тем,
// чтоб в маленьких блоках без палева вставлять его.
if (($keyword !== 'АРАКАДАБРА') OR ($keyword != 0)) {
// Синонимайзер кеев в тексте
$Okey = $keyword;
$syniy = FALSE;
$syniy_key = FALSE;
if ($synonims !== FALSE) {
$key_array = explode(' ', $keyword);
foreach ($key_array AS $keyGG) {
$keyyyy = str_replace(
array('.', ',', '!', '?', '#', '"', "'", '$', '%', '^', '&', '*', '(', ')'),
'', strtolower($keyGG));
if (strlen($keyyyy) <= 3)
continue;
if (isset($synonims[$keyyyy])) {
$syniy = explode(',', $synonims[$keyyyy]);
$syniy_s = sizeof($syniy) - 1;
$syniy_key = '#' . str_replace('#', '', $keyGG) . '#i';
break 1;
}
}
unset($key_array);
}
for ($i=0; $i<$dnorm; $i++){
if (($max_keeeeeeys == 'on') AND ($keys_m >= $keeeeys)) {
break 1;
}
if (($nn_randzk == 'on') AND (mt_rand(0,2) == 1) AND (strstr($keyword, ' ') !== FALSE)) {
$metka = true;
} else {
$metka = false;
}
if ($metka) {
$keyword = explode(' ', $keyword);
shuffle($keyword);
$keyword = implode(' ', $keyword);
}
if ($syniy_key !== FALSE) {
if (mt_rand(0,3) == 2) {
$keyword = preg_replace($syniy_key, $syniy[mt_rand(0, $syniy_s)], $keyword, 1);
// exit($keyword);
}
}
// расстояние между ключиками
if($rastoiya == 'on') {
$otdal = mt_rand($rastoiya_min, $rastoiya_max); // отдалённость в ___СЛОВАХ___
}
$tag = $tags[mt_rand(0, $tags_s)]; // @
if (($tag1 == $tag) AND ($tags_s > 2)) {
while (TRUE) {
if (($tags_s == 1) OR ($tags_s == 0))
break 1;
$tag = $tags[mt_rand(0, $tags_s)];
if ($tag != $tag1) {
break 1;
}
}
}
$tag1 = $tag;
if (empty($tag)) {
$t11 = $keyword;
} else {
if ($tag == 'abbr') {
$keyword1 = explode(' ', $keyword);
$keyword1_s = sizeof($keyword1) - 1;
$dop = ' title="' . $keyword1[mt_rand(0, $keyword1_s)] . '"';
} else {
$dop = '';
}
$t11="<" . $tag . $dop . ">" . $keyword . '</' . $tag . '>';
}
// средний метод вставки
// расстояние между ключиками
if($rastoiya == 'on') {
$rand += $otdal;
if ($rand >= $sitog) {
break 1;
}
$itog[$rand] = $t11;
} else {
// стандартный метод вставки ключиков
$itog[mt_rand(1, $sitog)] = $t11;
}
unset($tag, $t11); // , $rand1
if ($max_keeeeeeys == 'on') {
$keys_m++;
}
if (($syniy_key !== FALSE) OR ($metka === TRUE)) {
$keyword = $Okey;
}
}
// OPECHATKI
if (@$miss){
$plot=mt_rand($mis_min_plot, $mis_max_plot);
$dnorm=ceil($plot*$sitog/100);
for ($i=0; $i<$dnorm; $i++){
$t11=$miss[mt_rand(0, $n_miss)];
$itog[mt_rand(1, $sitog)]=$t11;
}
}
// LINKI
if ($nn_textlinks=="on"){
$rl=rand(0, 1);
$orl=rand(0,1);
for ($i=0; $i<$rl; $i++){
if (($nn_old=='on') && ($orl==1) && ($sorl>2)){
$au=@$old_urls[mt_rand(0, $sorl)][0];
} else {
$au=@$urls[mt_rand(0, (sizeof($urls)-1))][0];
}
$itog[mt_rand(1, $sitog)]=$au;
}
}
}
$itext=implode(" ", $itog);
$itext=trim($itext, " .,-").".";
$itext=str_replace(' ', ' ', $itext);
if ($keyword != $keywordOld) {
$itext = str_replace($keyword, $keywordOld, $itext);
}
//nastop('mark');
return $itext;
}
|
|
|
08.07.2012, 15:00
|
#13
|
Member
Регистрация: 29.07.2010
Сообщений: 95
Бабло: $47760
ТС -->
|
ТС
Cookie Monster, большое спасибо !
|
|
|
|