Накидал вот простенькую функцию, которая запихивает в текст ссылки. Т.е. берется текстовый файл и туда пихаются ссылочки с плотностью, например, 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 комментариев
Реализация интересная… для ссылок с рэндомным анкором, что снижает ценность функции для целей SEO.
Однако гораздо интереснее была бы функция, имеющая на входе массив вида «анкор»->»линк»: ищем все полные совпадения и проставляем соответствующие линки. Тут можно поиграться со словоформами и включать/не включать в список найденную словоформу. Например при анкоре «ГОРОД» функция может ставить ссылку на найденное слово «приГОРОД» — естественно, на слово целиком, а не только на найденный анкор внутри слова 🙂 Идеально, если бы функция отдавала бы приоритет только для полного вхождения, а при отсутствии оного — уже искала бы словоформы (тут нужны ограничения видимо по степени морфологии — в прямом смысле, очень сильно видоизмененные словоформы я бы игнорировал, по степени отличия от оригинала, что ли — «междуГОРОДние» пожалуй можно было бы исключить)
Спасибо, пригодтся.
+1 фичареквесту от kikaha: anchor-link массив на входе, чтобы проставлять линки более-менее осмысленно. А вобще, тут можно много напридумывать, например подключить базу синонимов и т.д. Каждый, при желании, может «заточить» ф-цию под себя.
kikaha, Хитрый Админ замена ссылок в тексте аля википедия конечно рулит, но автоматом все равно не сделать чтоб нормально было. Эту функцию писал с одной целью — планирую кормить листы ссылок яндексу, там цель чтоб ссылку скормить а не чтоб читать..
Соглашусь с kikaha гораздо лучше было бы с анкорами, но фича удобная, нужно попробовать!
Ну, если на скармливание, то норм прога. Хорошо хоть кто-то что-то пишет.
Последнее время отчаянно завидую программистам. Наверное, всё-таки надо было в своё время пойти учиться именно на эту специальность. Думаю, прога нужная, пригодится.
А если ссылки с одного сайта, но с разных страниц, то может ли робот воспринять их как спам (при нормальной плотности выше нормальной)?
да, в редбаттоне такое присутствует! создайте бесплатный редбаттон!!!