ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


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

> Без описания
Gori
Отправлено: 29 августа 2015 — 07:41
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




Есть функция:
CODE:
function nl2p($string) {
$s = ("|\r\n|");
$d = ("</p>\n<p>");
$string = "<p>". preg_replace($s, $d, $string) ."</p>";
$string = str_replace('<p></p>', '', $string);
return $string;
}

Очень полезная фунция.
Каждый перенос строки она переделывает в новый абзац, т.е. помещает фрагмент текста в теги <p></p>
Допустим я ввёл текст:

CODE:

Бла бла бла и бла бла бла.

Тум пурум пурум пурум.

Ля ля ля.


Результатом будет:

CODE:

<p>Бла бла бла и бла бла бла.</p>
<p>Тум пурум пурум пурум.</p>
<p>Ля ля ля.</p>

В отличие от функции "nl2br" которая создаёт тупо однии <br>, эта функция делает контент более статейным разделяя его как и положено на абзацы.

Но есть проблема.

Допустим я хочу чтобы не все новые строчки переделывались в абзацы, чтобы когда два переноса - был обзац, а когда один перенос - был <br>.

Т.е. если я ввожу вот так (один перенос):

CODE:

Бла бла бла и бла бла бла.
Тум пурум пурум пурум.
Ля ля ля.

То эта фунция всё равно мне всё оформит в теги <p></p>:
CODE:

<p>Бла бла бла и бла бла бла.</p>
<p>Тум пурум пурум пурум.</p>
<p>Ля ля ля.</p>

А мне нужно чтобы это было как положено, т.е. вот так:
CODE:

<p>Бла бла бла и бла бла бла.<br>
Тум пурум пурум пурум.<br>
Ля ля ля.</p>


Сам я никогда не решу эту задачу. Может быть поможет кто?

(Отредактировано автором: 29 августа 2015 — 07:42)

 
 
1Bot
Отправлено: 29 августа 2015 — 13:39
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Gori пишет:
хочу чтобы не все новые строчки переделывались в абзацы, чтобы когда два переноса - был абзац, а когда один перенос - был <br>.

CODE:
function nl2p($string) {
$s = "|\r\n|";
$d = "</p>\n<p>";
$string = "<p>". preg_replace($s, $d, $string) ."</p>";
$string = str_replace('<p></p>', '<br/>', $string);
return $string;
}
 
 
Gori
Отправлено: 29 августа 2015 — 15:45
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




1Bot , выводит теперь так:

CODE:
<p>Я мечтою ловил уходящие тени, </p>
<p>Уходящие тени погасавшего дня, </p>
<p>Я на башню всходил, и дрожали ступени, </p>
<p>И дрожали ступени под ногой у меня.</p>
<br/>
<p>И чем выше я шел, тем ясней рисовались, </p>
<p>Тем ясней рисовались очертанья вдали, </p>
<p>И какие-то звуки вокруг раздавались, </p>
<p>Вкруг меня раздавались от Небес и Земли.</p>
<br/>
<p>Чем я выше всходил, тем светлее сверкали, </p>
<p>Тем светлее сверкали выси дремлющих гор, </p>
<p>И сияньем прощальным как будто ласкали, </p>
<p>Словно нежно ласкали отуманенный взор.</p>
<br/>
<p>А внизу подо мною уж ночь наступила, </p>
<p>Уже ночь наступила для уснувшей Земли, </p>
<p>Для меня же блистало дневное светило, </p>
<p>Огневое светило догорало вдали.</p>
<br/>
<p>Я узнал, как ловить уходящие тени, </p>
<p>Уходящие тени потускневшего дня, </p>
<p>И все выше я шел, и дрожали ступени, </p>
<p>И дрожали ступени под ногой у меня.</p>
 
 
Gori
Отправлено: 1 сентября 2015 — 16:46
Post Id


Пользователь
Full Member


Покинул форум
Сообщений всего: 165
Дата рег-ции: Сент. 2013  
Репутация: 2




Помогли сдлать.

Делюсь тут рабочим кодом:

CODE:
$string = '<p>'.str_replace(["\r\n\r\n", "\n\n", "\r\r"], '</p><p>', $string).'</p>';
$string = str_replace(["\r\n", "\n", "\r"], '<br>', $string);


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

> Похожие темы: Помогите доделать функцию создания абзацев
Темы Форум Информация о теме Обновление
Отображение ссылок в постах
Помогите разобраться
Решение проблем Ответов: 17
Автор темы: Parapsixolog
2 января 2016 — 22:11
Автор: Parapsixolog
Нужна небольшая модификация поиска по форуму
Помогите, за вменяемую копеечку
Мусорка Ответов: 2
Автор темы: Guyver
27 января 2024 — 18:53
Автор: Parapsixolog
Перенаправление не работает
Помогите найти ошибку
Решение проблем Ответов: 4
Автор темы: Radja
20 апреля 2010 — 21:47
Автор: Radja
Отдача некоторых картинок через скрипт
Помогите сделать
Общие вопросы Ответов: 40
Автор темы: BON
2 июня 2011 — 20:13
Автор: BON
Вопрос по функции text.replace
Помогите с кодом
HTML Ответов: 1
Автор темы: Guyver
25 июня 2016 — 12:45
Автор: Guyver
 



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




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0667]     [ ]