PHP.SU

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


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

> Без описания
VGlad
Отправлено: 27 Января, 2017 - 17:43:09
Post Id



Новичок


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


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




Привет. Делаю свой парсер, но не могу понять как сделать автопараграф.

Есть условный текст:
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 );


Но это для бб кодов. Подскажите, пожалуйста, как можно реализовать автопараграф.
 
 Top
Строитель
Отправлено: 28 Января, 2017 - 00:05:24
Post Id



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


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


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




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);
 
 Top
VGlad
Отправлено: 28 Января, 2017 - 01:54:30
Post Id



Новичок


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


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




Строитель, в базу заносится <br /><br />
 
 Top
Строитель
Отправлено: 28 Января, 2017 - 19:43:35
Post Id



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


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


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




VGlad пишет:
Строитель, в базу заносится <br /><br />
Тогда попробуйте так
Спойлер (Отобразить)

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



Новичок


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


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




Капец, ничего не получается. Удалил к чертам прежний парсер. Так вот, что именно мне нужно.

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

Мне нужно, чтобы на выводе (echo $_POST['text'];) каждая строка была с тегом <p>.
 
 Top
Строитель
Отправлено: 20 Марта, 2017 - 23:52:36
Post Id



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


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


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




VGlad пишет:
Например, я написал в textarea: "Привет, это первая строка.
Вторая
третья
4"
Спойлер (Отобразить)
 
 Top
VGlad
Отправлено: 23 Марта, 2017 - 23:27:59
Post Id



Новичок


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


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




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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB