перемешать текст с кеями

Статус
В этой теме нельзя размещать новые ответы.

lena berkova

Местный житель
Регистрация
14 Янв 2009
Сообщения
437
Реакции
21
есть ли тулза, чтобы взять явно 1 текст и кеи и перемешать их как делают доргены, но чтобы без шаблонов и кучи страниц? желательно онлайн
 
Можно сделать намного проще. Если нужен текст, например как в баттоне, то просто берем пустую html страницу, там вписываем макрос [text-1000-1500], ставим генерировать 1 кей, т.е. будет одна страница и запускать - получая фактически один нужный нам текст с выделенными кеями разным образом, можно убрать при настройках все выделения. Удобнее так, наверное.
 
+ 1 за Ред Баттон, относительно текста с ним можно это проделать, берете текст + 1 кей можете указать на выходе файл с расширением .txt вот и все... Зачем еще онлайн такие заморочки, был тут на форуме еще

вот в нем тоже были фишки для перемешки текста с кеями, правдо я этим не пользовался сказать относительно работоспособности ничего не могу...
 
+ 1 за Ред Баттон, относительно текста с ним можно это проделать, берете текст + 1 кей можете указать на выходе файл с расширением .txt вот и все... Зачем еще онлайн такие заморочки, был тут на форуме еще
*** скрытое содержание ***
вот в нем тоже были фишки для перемешки текста с кеями, правдо я этим не пользовался сказать относительно работоспособности ничего не могу...
Тогда уж не батон брать, а что-нибудь более интересное проде того же ДМИ для буржуя.
 
Тогда уж не батон брать, а что-нибудь более интересное проде того же ДМИ для буржуя.

почему сразу дми?) если уж для буржуя (и то смотря под какую пс), джон22 генерит тексты поудачнее дми по крайней мере для гугля.
 
почему сразу дми?) если уж для буржуя (и то смотря под какую пс), джон22 генерит тексты поудачнее дми по крайней мере для гугля.

Имею и jonn22 и DMI, так вот, при прочих равных условиях доры, сгенеренные DMI гораздо лучше вылазят в Гугле. Суть в алгоритме генерации контента. У DMI текст грамматически точен, поскольку построен на грамматически верных шаблонах.
 
Имею и jonn22 и DMI, так вот, при прочих равных условиях доры, сгенеренные DMI гораздо лучше вылазят в Гугле. Суть в алгоритме генерации контента. У DMI текст грамматически точен, поскольку построен на грамматически верных шаблонах.

За какую версию DMI идет речь?
 
Имею и jonn22 и DMI, так вот, при прочих равных условиях доры, сгенеренные DMI гораздо лучше вылазят в Гугле. Суть в алгоритме генерации контента. У DMI текст грамматически точен, поскольку построен на грамматически верных шаблонах.
тоже интересуют версии скриптов? Лицензии или нули?
 
Наткнулся недавно на такой класс, сам пока не тестил, но вроде все хорошо задокументировано.
PHP:
<?php
class keywordInjector
{

/*
   Instantiate the class with the word salad, or install the salad later as a property.
   Density and Weight are passed as integers and I decimalize them at injection time.
   Density is the percentage of words that will be inserted
   Weight is where the insertions are placed - 10% = front 10% of the text,
   100 would be the whole document, -99 would be the bottom 99%. 0 (zero) is invalid.
   Delim is the character used to explode the word salad.
   insertMarker is a string that I use for identifying insert positions. You should not
   have to worry about this one unless you use '#!#' in your input buffers.

   The injector will correctly avoid HTML tags, style and JS blocks.
   The injector will not insert keyword phrases into inerted keyword phrases,
   however, based on how many HTML tags there are to avoid you may still get some
   doubling up ie., phrase phrase phrase based on the weight and density of the injection.
   It will also notice if there is a <body> tag and only insert past there.
   The style created has a random name to help reduce footprinting.

   Note that you could use a keyword list like 'online casino,online gambling' by simply
   changing the delimiter of the salad to ',' rather than the default ' '.

   There is a potential problem of finding script and style blocks if the HTML was coded
   like this: < script or < /style - the spaces before the node name will give me trouble.

Example:
$injector = new keywordInjector();
$injector->salad = file_get_contents('/wordSalad.txt');
$output = $injector->inject($inputBuff);

*/

        var $density;
        var $weight;
        var $salad;
        var $delim;
        var $insertMarker;

        function keywordInjector($theSalad = '')
        {
                $this->density = 10;
                $this->weight = 100;
                $this->salad = $theSalad;
                $this->delim = ' ';
                $this->insertMarker = '#!#';
        }

        function inject($inBuff)
        {
                if (($this->density <= 0) || ($this->density > 100)) {
                        die('Class keywordInjector requires a density of 1..100.'); }
                if (($this->weight == 0) || ($this->weight > 100) || ($this->weight < -99)) {
                        die('Class keywordInjector requires a weight of -99 to +100 but NOT zero.'); }
                if ((strlen($this->salad) == 0) || (strpos($this->salad, $this->delim) === false)) {
                        die('Class keywordInjector requires a salad string with at least 2 words.'); }
                if ((strlen($inBuff) == 0) || (strpos($inBuff, ' ') === false)) {
                        die('Class keywordInjector->inject requires an input string with at least 2 words.'); }

                $saladArr = explode($this->delim, $this->salad);
                $saladLen = count($saladArr);
                $workBuff = $inBuff;
                $styleName = $this->_randomStyleName();
                $styleDecl = "<style>.$styleName { display: none; }</style>\n";

                // Deal with the potential of a <body> tag...
                $headBuff = '';
                $ptr = strpos($checkBuff, '<body');
                if (!$ptr === false)
                {
                        // There is a body tag - hold on to the portion of the buffer BEFORE
                        // the body for later, but deal with the buffer from here forward with out.
                        $headBuff = substr($inBuff, 0, $ptr);
                        $workBuff = substr($inBuff, $ptr, strlen($inBuff));

                        // Need to reset the checkBuff...
                        $checkBuff = strtolower($workBuff);
                }

                // Calculate the weight and density parameters...
                $actualDensity = $this->density / 100;
                $tempBuff = explode(' ', strip_tags($workBuff));
                $insertCount = count($tempBuff) * $actualDensity;
                $actualWeight = abs($this->weight / 100);
                if ($this->weight > 0)
                {
                        // Weighted towards the front
                        $rangeTop = 0;
                        $rangeBottom = strlen($inBuff) * $actualWeight;
                } else {
                        // Weighted towards the end
                        $rangeTop = strlen($inBuff) - (strlen($inBuff) * $actualWeight);
                        $rangeBottom = strlen($inBuff);
                }

                // First pass - find valid spaces in the content that I can insert
                // a phrase, and replace it with an insert marker...
                for ($i=0; $i<$insertCount; $i++)
                {
                        $checkBuff = strtolower($workBuff);
                        $maxLen = strlen($workBuff);

                        $ptr = rand($rangeTop, $rangeBottom);

                        // Loop until I am at a space that is NOT inside something bad...
                        $keepGoing = true;
                        $failSafe = 0;
                        while($keepGoing)
                        {
                                if ($failSafe++ >= 50)
                                {
                                        // OK: I have looped around 50 times trying to insert the current keyword -
                                        // I think it is clear that the caller is trying to put too much density of injection
                                        // into the article and I have run out of space to insert.
                                        $i = $insertCount + 1;
                                        $keepGoing = false;
                                        continue;
                                }

                                // Go forward to the next space character...
                                $ptr = strpos($workBuff, ' ', $ptr);
                                if ($ptr === false)
                                {
                                        // I have randomed too far out... rerandom and start again.
                                        $ptr = rand($rangeTop, $rangeBottom);
                                        continue;
                                }

                                // First - make sure that I am not in a script block.
                                // All I do is see that the next <script> is [left in the block] of </script>
                                $lPtr = strpos($checkBuff, '</script', $ptr);
                                $rPtr = strpos($checkBuff, '<script', $ptr);
                                if ($lPtr < $rPtr)
                                {
                                        // I landed in a script... find the end of it and position myself there.
                                        $ptr = strpos($workBuff, '>', $lPtr) + 1;
                                        continue;
                                }

                                // Same drill for styles...
                                $lPtr = strpos($checkBuff, '</style', $ptr);
                                $rPtr = strpos($checkBuff, '<style', $ptr);
                                if ($lPtr < $rPtr)
                                {
                                        // I landed in a style...
                                        $ptr = strpos($workBuff, '>', $lPtr) + 1;
                                        continue;
                                }

                                // Now make sure that I am not inside of a tag...
                                $lPtr = strpos($workBuff, '>', $ptr);
                                $rPtr = strpos($workBuff, '<', $ptr);
                                if ($lPtr < $rPtr)
                                {
                                        // I'm inside a tag...
                                        $ptr = strpos($workBuff, '>', $lPtr) + 1;
                                        continue;
                                }

                                $keepGoing = false;
                        }

                        // Good to go! drop the marker and move on...
                        // (Note that space is actually removed)
                        if ($failSafe < 50)
                        {
                                $left = substr($workBuff, 0, $ptr);
                                $right = substr($workBuff, $ptr + 1, $maxLen);
                                $workBuff = $left . $this->insertMarker . $right;
                        }
                }

                // OK: I now have <n> insert markers in the text. Replace them with
                // words/phrases from the salad...
                $ptr = strpos($workBuff, $this->insertMarker);
                $imLen = strlen($this->insertMarker);
                while (!$ptr === false)
                {
                        $maxLen = strlen($workBuff);
                        $left = substr($workBuff, 0, $ptr);
                        $right = substr($workBuff, $ptr + $imLen, strlen($workBuff));
                        $saladPtr = rand(0, $saladLen);
                        $saladWord = $saladArr[$saladPtr];
                        $workBuff = "$left <span class=\"$styleName\">$saladWord</span> $right";
                        $ptr = strpos($workBuff, $this->insertMarker);
                }

                // Here it comes...
                return $headBuff . $styleDecl . $workBuff;
        }

        function _randomStyleName($nameLen = 10)
        {
                $proto = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
                $max = strlen($proto);
                $out = '';
                for ($i=0; $i<$nameLen; $i++) { $out .= substr($proto, rand(0, $max), 1); }
                return $out;
        }
}
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху