Размножение статьи силами PHP
Всем привет! Сегодня я хочу вам поведать “тайну”, как сделать скрипт который будет размножать статью из оригинала. Этот скрипт я искал в сети, но так и не смог найти, а он мне требовался при своих разработках.
Размножение статьи будет происходить следующим образом:
- В тексте статьи пишутся наборы слов в формате: {слово1|слово2…} .
- Регулярное выражение проверяет текст на вхождение наборов слов.
- Если наборы найдены, то они помещаются в один массив.
- С помощью цикла for, проходимся по массиву и заменяем слова.
- Слова заменяются рандомно для каждого набора слов.
Пункт – 1.
Например, есть у нас текст вот такого содержания:
В настоящее время с весьма быстрым развитием науки и техники, основную задачу выполняют знания и информация. Именно образование закладывает в человека знания и информацию.
Чтобы его размножить, мы перепишем его, используя наборы слов:
{В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым} {развитием|онтгенезом|онтогонией} {науки|доктрины|учения} и {техники|техучебы|техноинститута}, {базовую|базисную|основную} {миссию|задачу|делегацию|роль|функцию|цель|организацию} {совершают|выполняют|исполняют} {знания|багаж знаний|запас знаний} и информация. Именно {образование|обучение|учение} закладывает в {человека|людей|толпу} {знания|багаж знаний|запас знаний} и информацию.
Как видно из примера, мы использовали наборы слов в формате: {слово1|слово2…}.
Пункт – 2.
Теперь, когда у нас есть текст с наборами слов, мы будем использовать регулярное выражение, чтобы найти эти наборы в тексте.
Пример регулярного выражения:
preg_match_all('#{(.*)}#Ui',$content,$matches);
Пункт – 3.
Если регулярное выражение находит наборы слов, то оно их помещает в массив $matches.
Пункт – 4.
Теперь мы пройдемся по массиву $matches с помощью цикла for и рандомно заменим слова для каждого набора.
Пример кода замены слов:
for($i=0; $i<sizeof($matches[1]); $i++){
$ns=explode("|",$matches[1][$i]);
$c2=sizeof($ns);
$rand=rand(0,($c2-1));
$content=str_replace("{".$matches[1][$i]."}",$ns[$rand],$content);
}
Пункт – 5.
Функция explode разделяет текущий набор слов на части и помещает их в массив $ns. Далее мы с помощью функции sizeof, считаем количество элементов в массиве $ns. С помощью функции rand, мы генерируем рандомное число, которое нужно для случайного выбора слова из массива $ns. Далее мы с помощью функции str_replace заменяем текущий набор слов в тексте на случайное слово из этого набора.
Полный код размножения статьи:
$content="{В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым} {развитием|онтгенезом|онтогонией} {науки|доктрины|учения} и {техники|техучебы|техноинститута}, {базовую|базисную|основную} {миссию|задачу|делегацию|роль|функцию|цель|организацию} {совершают|выполняют|исполняют} {знания|багаж знаний|запас знаний} и информация. Именно {образование|обучение|учение} закладывает в {человека|людей|толпу} {знания|багаж знаний|запас знаний} и информацию.";
preg_match_all('#{(.*)}#Ui',$content,$matches);
for($i=0; $i<sizeof($matches[1]); $i++){
$ns=explode("|",$matches[1][$i]);
$c2=sizeof($ns);
$rand=rand(0,($c2-1));
$content=str_replace("{".$matches[1][$i]."}",$ns[$rand],$content);
}
Посмотреть – demo.
Вот в принципе и всё друзья. Применять этот код можно для генерации текстов или чего-то другого.
В следующих постах я раскрою вам новые способы парсинга feedburner и alexa traffic rank. Так что, если хотите быть в курсе событий, то подписывайтесь на обновление по RSS или Email.
Да, согласен, штука полезная.
А можно ли реализовать размножение на javascript? Очень нужно динамично генерить разные тексты без перезагрузки страницы.
Реализовать можно.
на совершенно нормальный пост, содержащий решение на js, сообщение:
«Зачем повторять символы или буквы по 4 раза?»
акисмент «пошёл» нервно курить.
Непартесь со скриптами – есть такая программ: Generating The Web.
Способ реализации очень похож на описанный автором.
Я например сделал множество объявлений из одного, поставил галочку на уникальность 50% – и получилось отлично. При размещении объявлений на досках каждое уникальное на разные буквы – масса ссылок выросла многократно. Особенно актуально при нынешних фильтрах и программах которые тупо спамят все вокруг – а так вроде бы уникальный текст в разных объявлениях и на разных досках.
Хороший эффект дает! А ведь можно и на форумы раскидать, да все разное!!!
Вообщем, если подойти в умом можно нехилый траффик нагнать таким способом.