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
Форумы портала PHP.SU :: Версия для печати :: Автопараграф
Форумы портала PHP.SU » PHP » Регулярные выражения » Автопараграф

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

1. VGlad - 27 Января, 2017 - 17:43:09 - перейти к сообщению
Привет. Делаю свой парсер, но не могу понять как сделать автопараграф.

Есть условный текст:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Здесь первый параграф
  2.  
  3. {img-1}
  4.  
  5. Второй параграф
  6.  
  7. {img-2}
  8.  
  9. Третий параграф
  10. и т.д


Мне нужно, чтобы в базу заносился текст с тегом <p>

CODE (htmlphp):
скопировать код в буфер обмена
  1. <p>Здесь первый параграф</p>
  2.  
  3. {img-1}
  4.  
  5. <p>Второй параграф</p>
  6.  
  7. {img-2}
  8.  
  9. <p>Третий параграф</p>
  10.  


К меня есть класс - parser, и в нем две функции кодировка/декодировка.
Например, кодировка/декодировка заголовка:
Кодировка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $str = preg_replace( "#\[h([1-6]{1})\](.+?)\[/h\\1\]#is", "<h\\1>\\2</h\\1>", $str );

Декодировка
CODE (htmlphp):
скопировать код в буфер обмена
  1. $str = preg_replace( "#<h([1-6]{1})>(.+?)</h\\1>#is", "[h\\1]\\2[/h\\1]", $str );


Но это для бб кодов. Подскажите, пожалуйста, как можно реализовать автопараграф.
2. Строитель - 28 Января, 2017 - 00:05:24 - перейти к сообщению
VGlad, ваш условный текст так и выглядит? Или же в исходном тексте есть пара переносов(имеется ввиду <br /><br /> или "\r\n\r\n") ? Если переносы есть, то по ним и определяйте начало|конец параграфа.
(Добавление)
VGlad, пример
PHP:
скопировать код в буфер обмена
  1. $text = 'Здесь первый параграф
  2.  
  3. {img-1}
  4.  
  5. Второй параграф
  6.  
  7. {img-2}
  8.  
  9. Третий параграф
  10. ';
  11.  
  12.  
  13. echo preg_replace('~([а-я\s]+)\n~iu', '<p>$1</p>', $text);
3. VGlad - 28 Января, 2017 - 01:54:30 - перейти к сообщению
Строитель, в базу заносится <br /><br />
4. Строитель - 28 Января, 2017 - 19:43:35 - перейти к сообщению
VGlad пишет:
Строитель, в базу заносится <br /><br />
Тогда попробуйте так
Спойлер (Отобразить)

Если ваш исходник отличается от текста в переменной $text, то может быть ещё понадобится не много подправить шаблон регулярного выражения.
5. VGlad - 20 Марта, 2017 - 16:15:24 - перейти к сообщению
Капец, ничего не получается. Удалил к чертам прежний парсер. Так вот, что именно мне нужно.

Например, я написал в textarea: "Привет, это первая строка.
Вторая
третья
4"

Мне нужно, чтобы на выводе (echo $_POST['text'];) каждая строка была с тегом <p>.
6. Строитель - 20 Марта, 2017 - 23:52:36 - перейти к сообщению
VGlad пишет:
Например, я написал в textarea: "Привет, это первая строка.
Вторая
третья
4"
Спойлер (Отобразить)
7. VGlad - 23 Марта, 2017 - 23:27:59 - перейти к сообщению
Спасибо, придумал другой способ)

 

Powered by ExBB FM 1.0 RC1