. Размножение статьи силами PHP | Makarou.com - когда сайты превращаются в бизнес

Размножение статьи силами PHP

Размножение статьи силами PHPВсем привет! Сегодня я хочу вам поведать “тайну”, как сделать скрипт который будет размножать статью из оригинала. Этот скрипт я искал в сети, но так и не смог найти, а он мне требовался при своих разработках.

Размножение статьи будет происходить следующим образом:

  1. В тексте статьи пишутся наборы слов в формате: {слово1|слово2…} .
  2. Регулярное выражение проверяет текст на вхождение наборов слов.
  3. Если наборы найдены, то они помещаются в один массив.
  4. С помощью цикла for, проходимся по массиву и заменяем слова.
  5. Слова заменяются рандомно для каждого набора слов.

Пункт – 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.

Постовой

Недавно увидел одну очень интересную статью про скрипт каптчи. Так вот в этой статье рассказывается про разные способы мастеринга каптчи для разных целей. Советую к прочтению!

Когда требуется создание сайта, то многие заказчики, чтобы не вникать в каждые детали этой работы, перекладывают создание сайтов на веб студии. Так как не многие заказчики готовы переложить эту работу на частных исполнителей.

php

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через: