Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как изменить текст в одну строку на несколько

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sparrow
Отправлено: 29 Июля, 2014 - 21:08:18
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Здравствуйте, рандомизатор текста http://xbb[dot]uz/randomizator/text[dot]bb

index.php

CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  4. </head>
  5. <body>
  6. <h1>Рандомизатор текста</h1>
  7.  
  8. <p><a href="http://xbb.uz/randomizator/text.bb" title="Скрипт рандомизатора текстов">
  9. Скачать этот скрипт, читать подробную документацию и обсудить.</a></p>
  10.  
  11. <ul>
  12. <li>{текст 1|текст 2|текст 3} - перебор</li>
  13. <li>[текст 1|текст 2|текст 3] - перестановки</li>
  14. <li>[+разделитель+текст 1|текст 2|текст 3] - перестановки с разделителем</li>
  15. <li>\{ \} \| \[ \] \+ \\ - экранизация спецсимволов</li>
  16. <li>Поддерживается вложенность дирректив</li>
  17. </ul>
  18.  
  19. <div align="center">
  20. <form method="post" action="">
  21. <?php
  22. $text = isset($_POST['text']) ? (string) $_POST['text'] : '';
  23. if ($text) {
  24.    echo '<textarea name="text" cols="100" rows="14">'
  25.       . htmlspecialchars($text)
  26.       . '</textarea>';
  27. } else {
  28. ?>
  29. <textarea name="text" cols="100" rows="14">
  30. {{Рандомизатор|Рандомайзер} {|текста} - {|это}
  31. |{Рандомизатором|Рандомайзером} {|текста} называется
  32. }
  33. {{|спамерский|оптимизаторский|SEO|сео|сеошный|рерайтерский}
  34.  {инструмент|скрипт|софт}
  35.  {|, предназначенный|, который {предназначен|нужен|используется}}
  36. |{|спамерская|оптимизаторская|SEO|сео|сеошная|рерайтерская}
  37.  {программа|прога|софтина|утилита}
  38.  {|, предназначенная|, которая предназначена|, которая нужна}
  39. } для
  40. {{|промышленного|индустриального|поточного|массового}
  41.  {{рерайтинга|рерайта}
  42.   {
  43.   |{|псевдоуникальных|уникальных|новых|рандомных} {статей|публикаций|текстов}
  44.   |{|псевдоуникального|уникального|нового|рандомного} контента
  45.   }
  46.  |{переписывания|производства|создания|клепания|размножения|написания}
  47.   {{|псевдоуникальных|уникальных|новых|рандомных} {статей|публикаций|текстов}
  48.   |{|псевдоуникального|уникального|нового|рандомного} контента
  49.   }
  50.  }
  51. |{|промышленной|индустриальной|поточной|массовой}
  52.  {уникализации|псевдоуникализации|рандомизации}
  53.  {статей|контента|публикаций|текстов}
  54. }
  55. {
  56. |в целях
  57.  {{|поискового} спама
  58.  |{|поисковой|SEO|сео|сеошной} оптимизации {|контента|сайта}
  59.  |{|поискового|SEO|сео|сеошного} продвижения {|сайта}
  60.  |продвижения {|сайта} в {поисковой выдаче|выдаче поисковиков}
  61.  }
  62. |для нужд
  63.  {{|поисковой|SEO|сео|сеошной} оптимизации {|контента|сайта}
  64.  |{|поискового|SEO|сео|сеошного} продвижения {|сайта}
  65.  |продвижения {|сайта} в {поисковой выдаче|выдаче поисковиков}
  66.  |{|SEO|сео|сеошных|поисковых} {оптимизаторов|продвиженцев}
  67.  }
  68. }.</textarea>
  69. <?php } ?>
  70. <input type="submit" value="Обработать" />
  71. </form>
  72. </div>
  73. <?php
  74. if ($text) {
  75.    require_once './Natty/TextRandomizer.php';
  76.    $tRand = new Natty_TextRandomizer($text);
  77.    echo '<p>Число всех возможных вариантов: <strong>' . $tRand->numVariant()
  78.       . '</strong>. Из них случайные 10:</p>';
  79.    for ($i=0; $i<10; ++$i) {
  80.        echo htmlspecialchars($tRand->getText()) . '<hr />';
  81.    }
  82. }
  83. ?>
  84. </body>
  85. </html>


TextRandomizer.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. /**
  3.  * Project:     Natty CMS: a PHP-based Content Management System
  4.  * File:        Natty/TextRandomizer.php
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  19.  *
  20.  * @link http://xbb.uz/
  21.  * @author Dmitriy Skorobogatov <info at xbb dot uz>
  22.  * @version 0.21
  23.  * @copyright 2006-2009 Dmitriy Skorobogatov
  24.  * @package Natty
  25.  */
  26.  
  27. require_once dirname(__FILE__) . '/TextRandomizer/Node.php';
  28.  
  29. class Natty_TextRandomizer
  30. {
  31.    private $_text = '';
  32.  
  33.    private $_tree = null;
  34.  
  35.    public function __construct($text = '')
  36.    {
  37.        $text = (string) $text;
  38.        $this->_text = $text;
  39.        $this->_tree = new Natty_TextRandomizer_Node;
  40.        $preg = '/
  41.            \\\\\\\            | # мнемонизированный слэш
  42.            \\\\\+             | # мнемонизированный +
  43.            \\\\\{             | # мнемонизированный {
  44.            \\\\\}             | # мнемонизированный }
  45.            \\\\\[             | # мнемонизированный [
  46.            \\\\\]             | # мнемонизированный ]
  47.            \\\\\|             | # мнемонизированный |
  48.            \\\                | # никчемный слэш
  49.            \[\+               | # начало разделителя
  50.            \+                 | # возможно, конец разделителя перетановок
  51.            \{                 | # начало перебора
  52.            \}                 | # конец перевора
  53.            \[                 | # начало перестановки
  54.            \]                 | # конец перестановки
  55.            \|                 | # разделитель вариантов
  56.            [^\\\+\{\}\[\]\|]+   # все прочее
  57.            /xu';
  58.        $currentNode = $this->_tree;
  59.        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  60.        $currentNode->setType('series');
  61.        $currentNode = $currentNode->concat('');
  62.        while (preg_match($preg, $text, $match)) {
  63.            switch ($match[0]) {
  64.                case '\\\\':
  65.                case '\\':
  66.                    $currentNode = $currentNode->concat('\\');
  67.                    break;
  68.                case '\+':
  69.                    $currentNode = $currentNode->concat('+');
  70.                    break;
  71.                case '\{':
  72.                    $currentNode = $currentNode->concat('{');
  73.                    break;
  74.                case '\}':
  75.                    $currentNode = $currentNode->concat('}');
  76.                    break;
  77.                case '\[':
  78.                    $currentNode = $currentNode->concat('[');
  79.                    break;
  80.                case '\]':
  81.                    $currentNode = $currentNode->concat(']');
  82.                    break;
  83.                case '\|':
  84.                    $currentNode = $currentNode->concat('|');
  85.                    break;
  86.                case '[+':
  87.                    if ('string' == $currentNode->type) {
  88.                        $currentNode = new Natty_TextRandomizer_Node($currentNode->parent);
  89.                    } else {
  90.                        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  91.                    }
  92.                    $currentNode->isSeparator = true;
  93.                    break;
  94.                case '+':
  95.                    if ($currentNode->isSeparator) {
  96.                        $currentNode->isSeparator = false;
  97.                        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  98.                        $currentNode->setType('series');
  99.                        $currentNode = $currentNode->concat('');
  100.                    } else {
  101.                        $currentNode = $currentNode->concat('+');
  102.                    }
  103.                    break;
  104.                case '{':
  105.                    if ('string' == $currentNode->type) {
  106.                        $currentNode = new Natty_TextRandomizer_Node($currentNode->parent);
  107.                    } else {
  108.                        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  109.                    }
  110.                    $currentNode->setType('synonyms');
  111.                    $currentNode = new Natty_TextRandomizer_Node($currentNode);
  112.                    $currentNode->setType('series');
  113.                    $currentNode = $currentNode->concat('');
  114.                    break;
  115.                case '}':
  116.                    $is = $currentNode->parent->parent;
  117.                    if ($is && 'synonyms' == $is->type) {
  118.                        $currentNode = $is->parent;
  119.                        $currentNode = $currentNode->concat('');
  120.                    } else {
  121.                        $currentNode = $currentNode->concat('}');
  122.                    }
  123.                    break;
  124.                case '[':
  125.                    if ('string' == $currentNode->type) {
  126.                        $currentNode = new Natty_TextRandomizer_Node($currentNode->parent);
  127.                    } else {
  128.                        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  129.                    }
  130.                    $currentNode = new Natty_TextRandomizer_Node($currentNode);
  131.                    $currentNode->setType('series');
  132.                    $currentNode = $currentNode->concat('');
  133.                    break;
  134.                case ']':
  135.                    $is = $currentNode->parent->parent;
  136.                    if ($is && 'mixing' == $is->type && $is->parent) {
  137.                        $currentNode = $is->parent;
  138.                        $currentNode = $currentNode->concat('');
  139.                    } else {
  140.                        $currentNode = $currentNode->concat(']');
  141.                    }
  142.                    break;
  143.                case '|':
  144.                    $is = $currentNode->parent;
  145.                    if ($is && 'series' == $is->type) {
  146.                        $currentNode = $is->parent;
  147.                        $currentNode = new Natty_TextRandomizer_Node($currentNode);
  148.                        $currentNode->setType('series');
  149.                        $currentNode = $currentNode->concat('');
  150.                    } else {
  151.                        $currentNode = $currentNode->concat('|');
  152.                    }
  153.                    break;
  154.                default:
  155.                    $currentNode = $currentNode->concat($match[0]);
  156.            }
  157.            $text = substr($text, strlen($match[0]));
  158.        }
  159.    }
  160.  
  161.    public function getText()
  162.    {
  163.        return $this->_tree->getText();
  164.    }
  165.  
  166.    public function numVariant()
  167.    {
  168.        return $this->_tree->numVariant();
  169.    }
  170. }


Что нужно заменить или добавить в коде чтобы результат обработки был не в 1 строку
а так как я его задаю в поле для обработки в несколько строк.

Простите если не правильно выражаюсь.
 
 Top
Tyoma5891
Отправлено: 29 Июля, 2014 - 21:20:23
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




хм..ну судя по тому что тут имеем, то никак, скорее всего придется возвращаемый результат парсить дополнительно под Ваши нужды...
 
 Top
sparrow
Отправлено: 29 Июля, 2014 - 21:28:12
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




[quote=Tyoma5891][/quote] мне нужно чтобы текст который я вставил в поле из блокнота с переносами строк, отступами после обработки остался таким же. либо же первый результат записывался бы в файл
 
 Top
Sail
Отправлено: 31 Июля, 2014 - 09:34:33
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




sparrow пишет:
который я вставил в поле из блокнота с переносами строк, отступами после обработки остался таким же

Однако,

Ну, или , если без отступов...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB