Накидал вот простенькую функцию, которая запихивает в текст ссылки. Т.е. берется текстовый файл и туда пихаются ссылочки с плотностью, например, 7%.  Функция простенькая, писал себе под один проект. Наверно, весь функционал редбаттона по отдельности скоро напишу, надо свой дорген замутить.

Переменные вызова:
$text, сам текст в который пихаются ссылки. string
$prc, int, процент плотности ссылок.
$links, array, массив со ссылками вида http://site.ru
$nobr, bool, 1 или 0. Если, например, текста 500кб а ссылок 3, указывает, обрубать ли текст после последней ссылки(1) или оставить все 500кб с 3 ссылками.

Листинг:

function AddLinksToText($text, $prc, $links, $nobr){
	$pos = 0;
	$string = "";
	$totalLinks = count($links);
	$Words = explode(" ", $text);
	$totalWords = count($Words);
	$needText = $totalLinks * $prc;

	if($totalWords < $needText){
			$prc = floor($totalWords / $totalLinks); //calculate recommended percentage if haven't enough text
			echo @date("r")." not enough text, decrease density to ".$prc."%\r\n";
			$needText = $totalLinks * $prc;
		} else {
			echo @date("r")." working with text, density is ".$prc."%\r\n";
		}
	foreach($links as $num=>$lnk){
					$pos += $prc;
					$Words[$pos] = "<a href=\"".$lnk."\">".$Words[$pos]."</a>";
				}
	if(!isset($nobr)){
		$tmp = array_slice($Words, 0, $needText + 3);
		} else {
		$tmp = $Words;
		}

	//return string
	foreach($tmp as $somevar){
		$string .= $somevar." ";
	}
	return $string;	

}

На закуску.

9 responses


Do you want to comment?

Comments RSS and TrackBack Identifier URI ?

Реализация интересная… для ссылок с рэндомным анкором, что снижает ценность функции для целей SEO.
Однако гораздо интереснее была бы функция, имеющая на входе массив вида «анкор»->»линк»: ищем все полные совпадения и проставляем соответствующие линки. Тут можно поиграться со словоформами и включать/не включать в список найденную словоформу. Например при анкоре «ГОРОД» функция может  ставить ссылку на найденное слово «приГОРОД» — естественно, на слово целиком, а не только на найденный анкор внутри слова :) Идеально, если бы функция отдавала бы приоритет только для полного вхождения, а при отсутствии оного — уже искала бы словоформы (тут нужны ограничения видимо по степени морфологии — в прямом смысле, очень сильно видоизмененные словоформы я бы игнорировал, по степени отличия от оригинала, что ли — «междуГОРОДние» пожалуй можно было бы исключить)

Август 24, 2010 12:55 пп

Спасибо, пригодтся.
+1 фичареквесту от kikaha: anchor-link массив на входе, чтобы проставлять линки более-менее осмысленно. А вобще, тут можно много напридумывать, например подключить базу синонимов и т.д. Каждый, при желании, может «заточить» ф-цию под себя.

Август 24, 2010 4:18 пп

Соглашусь с kikaha гораздо лучше было бы с анкорами, но фича удобная, нужно попробовать!

Август 24, 2010 4:25 пп

kikaha, Хитрый Админ замена ссылок в тексте аля википедия конечно рулит, но автоматом все равно не сделать чтоб нормально было. Эту функцию писал с одной целью — планирую кормить листы ссылок яндексу, там цель чтоб ссылку скормить а не чтоб читать..

Август 25, 2010 8:06 пп

Ну, если на скармливание, то норм прога. Хорошо хоть кто-то что-то пишет.

Октябрь 8, 2010 6:10 пп

Последнее время отчаянно завидую программистам. Наверное, всё-таки надо было в своё время пойти учиться именно на эту специальность. Думаю, прога нужная, пригодится.

Октябрь 12, 2010 12:44 дп

А если ссылки с одного сайта, но с разных страниц, то может ли робот воспринять их как спам (при нормальной плотности выше нормальной)?

Октябрь 13, 2010 12:22 пп

да, в редбаттоне такое присутствует! создайте бесплатный редбаттон!!!

Ноябрь 15, 2010 6:34 пп

Ноябрь 25, 2010 6:25 пп

Comment now!
















Trackbacks

1